Проверяем доступность интернета на shell
06.12.2012
На самом деле это просто проверка доступности нескольких интернет ресурсов по ICMP (ping)
В данном примере проверяется доступность сайта ya.ru и если он не доступен, то пингуется 8.8.8.8 (google public dns):
1 |
#!/bin/sh TEST1=0 TEST1=`ping -c 4 -q ya.ru | grep -oP '\d+(?=% packet loss)'` echo $TEST1 if [ $TEST1 -ne 0 ] then TEST2=0 TEST2=`ping -c 4 -q 8.8.8.8 | grep -oP '\d+(?=% packet loss)'` if [ $TEST2 -ne 0 ] then echo "Alarm!!!" else echo "false alarm" fi else echo "Ok" fi |
При присвоении переменных (например, TEST1=0) нельзя ставить пробелы до и после знак = , также не нужно ставить перед именем переменной знак $
Лучше пинговать гейтвэй, а алерты заменить на записи в лог.