Следующий сценарий оболочки работает только для первого сервера и не переходит к следующему. Я пробовал 0 <перед командой ssh, но после подключения он по-прежнему не возвращается к сценарию оболочки.
#!/bin/sh
while read IP
do
ssh root@10.0.0.10 " ssh root@$IP 'ls -lht /log/cdr-csv/ ' " > /tmp/$IP.txt
done << here_doc
18.17.6.19
18.17.10.24
here_doc
Как запустить ту же команду на втором сервере 18.17.10.24?
ssh
читает стандартный ввод, если вы не предоставите -n
вариант. Итак, первый IP-адрес используется read IP
а все остальное здесь-документ потребляется ssh root@10.0.0.10
. Измените это на ssh -n root@10.0.0.10
Вы должны отправить на удаленный сервер скрипт для выполнения. То, как написан ваш сценарий, не будет работать, потому что here_doc
оценивается локально, а не удаленно.
Взгляните на этот ответ Я предоставил другому пользователю эту тему.