Я использую ssh для запуска некоторых команд для нескольких удаленных ip-соединений для цикла. В основном он выполняет те же команды для списка IP-адресов. Некоторые из IP-адресов могут быть недоступны, поэтому я использовал параметр ConnectTimeout. Но мой script не работал так, как я хотел. На самом деле он застрял в первом недостижимом IP вместо того, чтобы пробовать следующий IP-адрес в моем списке. Вот блок моего кода:
for ip in ${IP} ; do
ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o ConnectTimeout=10 -l ${USERNAME} ${SCRIPT_HOST} "${COMMAND} -i $ip || echo timeout" >> ./myscript.out
done
Он отлично работает для достижимых IP-адресов, но если определенный IP-адрес отключен, он ждет некоторое время (более 10 секунд, возможно, 35-40 секунд) и отобразит сообщение об ошибке на моем терминале:
ERROR connecting : Connection timed out
Так что мне интересно, какой вариант я использовал неправильно.
Спасибо.