@skyspirit

Как сделать пинг в BASH?

Добрый день. Каким образом сделать скрипт пинга сети таким образом, чтобы в переменную присвоить, условно, обрыв связи, если он длится больше 1 минуты и восстановление связи, если раньше был обрыв? Спасибо
  • Вопрос задан
  • 1505 просмотров
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Пингайте разовыми пингами и проверяйте код возврата в переменной $?: 0 успех, не 0 - ошибка связи.
ping mysite.com -c 1
echo $?


После обсуждения в камментах, вот вам скрипт помощнее:
declare -i failcount=0
status="OK"

while true: do
    if ping mysite.com -c 1; then
        if [ "$status" == "FAIL" ]; then
            echo "Network is restored"
            curl -X GET -k "https://api.telegram.org/bot1938&text=Connection_is_restored"; 
            status="OK"
        fi
        failcount=0
    else
        failcount+=1
        if [ "$status" == "OK" ] && [ $failcount -gt 60 ] ; then
            echo "Network is unavailable for 60 seconds!!!"
            curl -X GET -k "https://api.telegram.org/bot1938&text=Connection_broken_for_60_seconds"; 
            status="FAIL"
        fi
    fi
done
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Нужно зайти в google, вбить запрос "bash if ping successful", найти нужное и адаптировать по себя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы