В моих скриптах bash я использовал что-то вроде:
until fping -u google.com; do echo "$0[$$] Network/DNS down?? $(date)" 1>&2 && sleep $(($RANDOM%(1 + ++trynum * 1) +1)).222; done
проверить онлайн соединение.
Он останавливается на месте, спя растя случайными интервалами, пока не сможет снова пропинговать google.com.
Проблема: В некоторых локальных сетях ICMP-запросы вообще блокируются, хотя веб-страницы все еще доступны. Какой короткий путь для тестирования в этом общем случае (брандмауэр снаружи)?
На основании этого теста я переключусь на http-тест, такой как статус выхода
curl -s google.com >/dev/null
если это хорошо.