Как я могу проверить подключение к Интернету в консоли?

Проверка того, работает ли конкретный веб-сайт

Во-первых, доступно множество хороших онлайн-сервисов мониторинга. Чтобы выбрать один из них, 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

Однако это не говорит о том, действительно ли у вас есть подключение или нет, просто подключен ли кабель и что-то находится на другом конце.