Все сеансы будут останавливаться, как только будет получена сигнализация с помощью SIGHUP. (Если предположить, что вы ничего не сделали, чтобы предотвратить обработку этого сигнала).
Для этого нет таймаута, только минимальная задержка, так как сигнал вызывает остановку процесса, что приводит к появлению следующего SIGHUP и т.д.
Вы выполняете команду ssh root@server1.com
, которая читает команды со стандартного входа и выполняет их на server1.com
. Стандартный вход подключается к вашему входному файлу, поэтому на server1.com
вы выполняете команду ssh root@server2.com
.
Если Вы хотите выполнить команду ls
, Вам необходимо каким-то образом работать ls
в Вашем коде. Есть два здравомыслящих варианта:
Если Вы хотите выполнять произвольные команды, поместите все команды в Ваш входной файл:
ssh root@server1.com ls.
root@server2.com ls
Тогда ваш входной файл - это скрипт оболочки, просто выполните его с помощью sh myscript
, или сделайте его исполняемым и поместите #!/bin/sh
сверху.
Если вы хотите выполнить одну и ту же команду на нескольких машинах, сделайте так, чтобы входной файл содержал только имена машин, т.е.
root@server1.com.
root@server2.com
Затем прочитайте названия машин и выполните команду по каждому:
, одновременно читая целевой комментарий; сделайте.
шш "$target" ls
Переадресация с /dev/null
происходит в том случае, если удаленная команда может попытаться прочитать стандартный вход, чтобы избежать чтения из файла со списком имен машин. Файл со списком может содержать другие слова в каждой строке после имени сервера; они будут вставлены в переменную /комментарий
. Войдите в привычку заключать двойные кавычки вокруг подстановок переменных.
Для выполнения одной и той же команды на нескольких машинах лучше воспользоваться фреймворками .
Добавьте опцию -t
для команды ssh
в ваш файл:
ssh -t root@server1.com
ssh -t root@server2.com
etc....
из man ssh
:
-t Force pseudo-tty allocation. This can be used to execute arbi‐
trary screen-based programs on a remote machine, which can be
very useful, e.g. when implementing menu services. Multiple -t
options force tty allocation, even if ssh has no local tty.
Если ошибка все еще происходит, добавляя еще одну опцию -t
, что-то вроде:
ssh -t -t root@server1.com