Bash Ping Скрипт
Данный скрипт просто пингует указанный вами хост, и в зависимости от результатов может выполнить определенный ряд команд, очень часто мною использовался при создании других скриптов, например скрипта который подымает ppp туннели в случаи их падения, да и многих других.
#!/bin/bash # # имя хоста или IP HOSTS="eddnet.org" # Количество запросов COUNT=4 for myHost in $HOSTS do count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }') if [ $count -eq 0 ]; then # 100% failed echo "Host : $myHost is down (ping failed) at $(date)" fi done
Случайные Статьи
Loading…
Количество просмотров :10056
Здравствуйте! Что нужно сделать, чтоб пропинговать несколько хостов? Смысл такой, что если один хост не отвечает, это не значит что интернета нет, поэтому пропинговать следующий и т.д. Как только какой-нибудь хост ответил, то интернет есть. Я так понимаю, что нужно вокруг этого цикла организовать ещё один с перебором имён хостов?
Пока сделал так:
…
HOST1=»ya.ru»
HOST2=»google.ru»
HOST3=»domru.ru»
…
for myHost in $HOST1 $HOST2 $HOST3
…
Вроде работает.
ping «$HOST_IP» -c 3 -n -q -i 0.3 -w 3 > /dev/null
if [ $? -ne «0» ]
# Если возникла ошибка (хост не доступен)
then
echo «HOST DOWN»
# Если же всё хорошо
else
echo «HOST UP»
fi