Есть ли простой способ проверить интернет-соединение с консоли? Я пытаюсь поиграться в сценарии оболочки. Мне кажется, одна идея - проверить код ответа HTTP, чтобы понять, работает ли интернет-соединение нормально. Но я думаю, что должен быть простой способ без необходимости проверять сайт, который никогда не падает;)wget --spider http://www.google.co.in/
Редактировать: Кажется, что может быть много факторов, которые могут быть рассмотрены индивидуально, хорошо. В данный момент я собираюсь проверить, не закрылся ли мой блог. У меня есть настройка cron, чтобы проверить это каждую минуту. Для этого я проверяю HTTP-код ответа wget --spider на свой блог. Если его нет 200, он уведомляет меня (я думаю, что это будет лучше, чем просто пинговать его, так как сайт может быть загружен слишком сильно, а время ожидания истекло или он откроется слишком поздно). Вчера была проблема с интернетом. Локальная сеть была подключена, но я просто не мог получить доступ к любому сайту. Поэтому я продолжаю получать уведомления, так как скрипт не может найти 200 в ответе wget. Теперь я хочу убедиться, что он отображает мне уведомление, когда у меня есть подключение к Интернету.
Поэтому проверка подключения к DNS и локальной сети для меня немного излишня, так как у меня нет особой необходимости выяснять, в чем проблема. Так что вы предлагаете, как я это делаю?
Вот мой скрипт для проверки времени простоя моего блога:
#!/bin/bash
# Sending the output of the wget in a variable and not what wget fetches
RESULT=`wget --spider http://blog.ashfame.com 2>&1`
FLAG=0
# Traverse the string considering it as an array of words
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means all good
fi
done
if [ $FLAG -eq '0' ]; then
# A good point is to check if the internet is working or not
# Check if we have internet connectivity by some other site
RESULT=`wget --spider http://www.facebook.com 2>&1`
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means we do have internet connectivity and the blog is actually down
fi
done
if [ $FLAG -eq '1' ]; then
DISPLAY=:0 notify-send -t 2000 -i /home/ashfame/Dropbox/Ubuntu/icons/network-idle.png "Downtime Alert!" "http://blog.ashfame.com/ is down."
fi
fi
exit
Таким образом, мне нужно проверять подключение к Интернету только там, где есть проблема с моим кодом ответа блога. Это немного тяжело (так как я не использую пинг), но не должно давать никаких ложных срабатываний. Правильно? Кроме того, как я могу случайным образом пинговать на другой сайт каждый раз, например, Facebook, Google, Yahoo и т. Д. Кроме того (я пытался избежать ввода-вывода) я могу записать в файл журнала, с помощью которого я могу проверить количество проверок простоя и затем пропустите дальнейшие проверки, пока сайт не выйдет из строя или вызовите более длительные проверки (10 минут вместо каждой минуты). Что вы думаете?