Проверяем доступность интернета на shell

06.12.2012
На самом деле это просто проверка доступности нескольких интернет ресурсов по ICMP (ping)

В данном примере проверяется доступность сайта ya.ru и если он не доступен, то пингуется  8.8.8.8 (google public dns):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/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) нельзя ставить пробелы до и после знак = , также не нужно ставить перед именем переменной знак $

Лучше пинговать гейтвэй, а алерты заменить на записи в лог.


Категории: Linux, Centos
Яндекс.Метрика