У меня есть несколько веб-серверов и для управления кластером, я иногда использую скрипт, который автоматически открывает соединения и синхронизирует файлы с ними, используя скрипты python, я столкнулся со странной проблемой и не знаю, как ее исправить ..
Чтобы воспроизвести тестовый пример, у вас должен быть удаленный пункт назначения, который не устанавливает соединение немедленно (не в локальной сети и не на локальном хосте), и соединение должно работать без запроса пароля (с использованием файлов ключей).
У меня 16 компьютеров с Fedora, на серверах установлена Cent OS 5, s120 и s121 - это два сервера, которым я владею с IP-адресами, назначенными в /etc/hosts
для s121 & s120
это пример команды, которая одновременно открывает 9 подключений к соединению s120 + 9 к соединению s121 в одной оболочке. И ЭТО РАБОТАЕТ!
gnome-terminal --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab
- e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh
root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" -- tab
-e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh
root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab
-e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh
root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab
-e "bash -c \"ssh root@s121;\""
эта команда ПЫТАЕТСЯ открыть 15 соединений на одной и той же оболочке все 15 TO-> s120
gnome-terminal --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab
-e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh
root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\""
--tab - e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash
- c \"ssh
root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\""
--tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c
\"ssh root@s120;\""
и он попытается открыть 15 соединений, которые почти сразу 5 вкладок закрываются, и только 10 соединений остаются открытыми.
эта проблема также возникает в terminal_xfce
(что я предпочитаю, потому что я нашел gnome-терминал немного менее стабильным)
кажется, что более 10 одновременных открывающихся соединений не допускаются,
кажется, что в начале разрешено не более 10 одновременных подключений, но если я открою 10 вкладок и подожду начала подключения, то я могу открыть другой терминал с 10 вкладками к тому же серверу.
(Я также хочу сказать, что результаты этого теста совпадают с отключенными брандмауэрами IP TABLES как на клиенте, так и на серверах)
Я также должен сказать, что эта проблема раздражает, особенно при выполнении lsyncd
и rsync
то время как синхронизация нескольких назначений в файловой системе на одном и том же сервере приводит к неожиданным результатам, поскольку соединения завершаются ОС, тестовый пример терминала просто проще воспроизвести даже если менее проблематично в обращении.