Мне нужна Bash (или простая оболочка) script, чтобы вставить 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)
Как бы вы это сделали? На каких хостах вы будете пинговать?
Разъяснения:
-
Под "internet is up", я имею в виду мое подключение к Интернету.
-
Под "вверх" я имею в виду иметь полезное соединение (на самом деле не имеет значения, говорим ли мы о том, что DNS не работает, или соединение действительно очень медленное [вспомните
-w
для таймаута]). Вот почему я не включил ни один IP-адрес, а только хосты.
Должен ли я также перекрыть переполнение стека? Я имею в виду, если я не могу получить доступ к Google, Википедии или переполнению стека, я не хочу интернет: p