Простой скрипт проверки доступности хоста
А вот и собственно код самого скрипта:
#!/bin/bash
#Функция посылает ping запрос к хосту указанному в переменной mhost
function loadres(){
#Необходимый адрес хоста можно указать прямо в командной строке в качестве аргумента в виде: myscript myhost.com
if [ -n "$1" ]
then
mhost=$1
else
#Вместо "mysite.com" укажите адрес необходимого хоста
mhost="mysite.com"
fi
if ping -c1 "$mhost" &> /dev/null
then
#Вместо "$HOME/*/live-host/" укажите свой (правильный) путь к иконкам. Без иконок скрипт тоже будет правильно работать.
notify-send -i $HOME/*/live-host/img/gdu-smart-healthy.png "Ваш хост $mhost" "Отвечает на запросы"
elif (exec 3</dev/tcp/"$mhost"/80) 2>/dev/null
then
notify-send -i $HOME/*/live-host/img/gdu-smart-healthy.png "Ваш хост $mhost" "Отвечает на запросы"
(exec 3<&~) 2>/dev/null
else
notify-send -i $HOME/*/live-host/img/gdu-smart-failing.png "Ваш хост $mhost" "Не отвечает на запросы"
fi
unset mhost
}
#Проверяем наличие доступа к сети Интернет
if !(dig google.com | grep REFUSED &>/dev/null)
then
loadres $1
elif (exec 4</dev/tcp/google.com/80) 2>/dev/null
then
loadres $1
(exec 4<&~) 2>/dev/null
else
notify-send -i $HOME/*/live-host/img/no-internet-pc.png "Вероятно отсутствует подключение" "К Интернету"
fi
exit $?
Скрипт снабжен понятными комментариями. Адрес хоста можно указывать как в виде привычного набора букв (mysite.com) так и в виде IP адреса (xxx.xxx.xxx.xxx). Для постоянного использования, возможно, будет удобно поместить скрипт в /bin/ (не забудьте убрать расширение у скрипта и дать права на исполнение).
Адрес проверяемого хоста можно жестко прописать в переменной mhost или указывать как аргумент при вызове скрипта, например: lhost habr.com.
Код скрипта так же доступен в моём репозитории на Гитхабе.
P.S. Некоторые скажут, что этот скрипт - это всего лишь очередной велосипед и в какой то мере будут правы. Только мне этот велосипед нравится и собрал его я сам :)
Данный скрипт писался под Ubuntu и правильно работать будет только там. Для адекватной работы в других дистрибутивах его нужно будет переписать.
Благодарю за внимание ! Всем Успеха и Вдохновения !
Комментарии
Отправить комментарий