Назад | Перейти на главную страницу

Пока цикл не возвращает управление

Следующий сценарий оболочки работает только для первого сервера и не переходит к следующему. Я пробовал 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 оценивается локально, а не удаленно.

Взгляните на этот ответ Я предоставил другому пользователю эту тему.