Мне нужен сценарий Bash (или простой оболочки), чтобы вставить cronjob, который каждую минуту проверяет, работает ли Интернет.
Вот как я это сделал:
#! /bin/sh
host1=google.com
host2=wikipedia.org
curr_date=`date +"%Y%m%d%H%M"`
echo -n "${curr_date};"
((ping -w5 -c3 $host1 || ping -w5 -c3 $host2) > /dev/null 2>&1) &&
echo "up" || (echo "down" && exit 1)
Как бы вы это сделали? На каких хостах вы бы пинговали?
Разъяснения:
Под " Интернет работает ", я имею в виду мое подключение к Интернету.
Под " up " я имею в виду наличие пригодного для использования соединения (не имеет значения, говорим ли мы о том, что DNS не работает или соединение действительно очень медленное [учтите -w
для таймаута]). Вот почему я не включил ни одного IP-адреса, а только хосты.
Должен ли я также пинговать переполнение стека? Я имею в виду, что если я не могу получить доступ к Google, Википедии или переполнению стека, мне не нужен Интернет: p