Мне нужен сценарий Bash (или простой оболочки), чтобы вставить cronjob, который каждую минуту проверяет, работает ли Интернет.Сценарий Bash, чтобы (более или менее) надежно проверить, находится ли в Интернете
Это, как я это сделал:
#! /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)
Как бы вы это сделать? Какие хосты вы будете пинговать?
Разъяснение:
К "в Интернете до", я имею в виду моего подключения к Интернету.
К «до», я имею в виду иметь доступное соединение (на самом деле не имеет значения, если мы говорим о DNS время вниз или соединение действительно очень медленно [Разум
-w
для тайм-аут]). Вот почему я не включил ни одного IP-адреса, а только хосты.
Должен ли я также перекрыть переполнение стека? Я имею в виду, если я не могу получить доступ к Google, Википедии или переполнению стека, я не хочу интернет: p
Google является то, что я всегда использую, чтобы проверить, если у меня есть связь. –
8.8.8.8 было бы хорошо, тем более, что это многоадресная рассылка. –
Интернет в целом, как правило, «вверх». Однако вашего подключения к нему может и не быть! ;-) –