Я запускаю скрипт bash, который просматривает список IP-адресов моего удаленного сервера, подключается через netcat (telnet) для каждой строки и запускает несколько команд.
Проблема в том, что я не могу понять, как завершить netcat, чтобы скрипт мог перейти к следующему IP-адресу в списке.
Вот соответствующий бит:
#!/bin/bash
while ISF= read -r line;do
(
sleep 3
printf 'command1'
sleep 3
printf 'command2'
sleep 3
) | nc $line
done < ~/servers.txt
Удаленные серверы не отправляют EOF, поэтому есть ли что-то, что я могу echo
или printf
в netcat, чтобы завершить работу netcat, чтобы сценарий мог снова пройти цикл? Я действительно предпочел бы не использовать флаг -w
для тайм-аута, потому что у меня есть довольно много серверов, на которых мне нужно это сделать, а тайм-аут займет гораздо больше времени.
printf 'echo "QUIT"'
? - person joaumg   schedule 09.12.2016printf 'echo "^Z"'
IIRC. - person joaumg   schedule 09.12.2016