Проверка того, работает ли конкретный веб-сайт
Во-первых, доступно множество хороших онлайн-сервисов мониторинга. Чтобы выбрать один из них, Pingdom включает бесплатную учетную запись для мониторинга одной цели. (Отказ от ответственности: Я нет каким-либо образом связан с Pingdom).
Во-вторых, используя wget --spider
для вашего собственного сценария это хорошая идея. Вы получите несколько ложных срабатываний, когда ваш компьютер не работает или когда ваш DNS-сервер не работает. Проверка возвращаемого кода - это простой способ реализовать это:
wget --spider --quiet http://example.comif [ "$?" != 0 ]; then echo "Website failed!" | mail -s "Website down" your_email@provider.tldfi
И снова в этом подходе есть недостатки. Если ваш провайдер кэшировал вашу DNS-запись, но DNS-сервер не работает, другие пользователи не могут получить доступ к вашему сайту, даже если мониторинг показывает, что все в порядке. Вы можете написать короткое обходное решение с помощью host
, например host example.com <your dns server IP>
. Это вернет ошибку, если DNS-сервер не отвечает, даже если OpenDNS или DNS-сервер вашего собственного провайдера работает нормально.
Проверка того, работает ли Интернет
На самом деле не существует простого способа справиться с этим в каждом конкретном случае.
Вы можете, например, запустить ping -c1
на нескольких хорошо известных сайтах (например www.google.com , facebook.com и пинг.фунет.fi) и проверьте коды возврата, чтобы определить, доступен ли какой-либо пункт назначения. Вы можете автоматически проверить код возврата, используя переменную $?
. Параметр -c1
ограничивает количество пакетов ping одним.
Вы можете столкнуться с проблемами с некоторыми общедоступными Wi-Fi, когда есть шлюз входа в систему, который перенаправляет все пинги и HTTP-запросы. Если это так, вы можете получать ответы на запросы и коды состояния HTTP без ошибок, даже если вы не можете получить доступ к каким-либо другим сайтам.
Если вы хотите проверить состояние кабеля, вы можете использовать
sudo ethtool eth0
Из выходных данных (выдержка):
Speed: 1000Mb/sDuplex: FullPort: Twisted PairLink detected: yes
Однако это не говорит о том, действительно ли у вас есть подключение или нет, просто подключен ли кабель и что-то находится на другом конце.