#!/bin/sh # Какие хосты проверяем (через пробел). hosts="8.8.8.8 ya.ru www.ru" # Файл, который будет создаваться, если интернета нет. offline="/tmp/inetoff" # Функция проверяет с помощью ping доступность хостов. # Возвращает 0, если хотя бы один хост доступен. check_hosts() { for host in ${hosts}; do # Запускаем ping с 4-мя запросами /sbin/ping -c 4 $host > /dev/null 2>&1 if [ $? -eq 0 ]; then return 0; fi done return 1; } # Процедура, которая пишет сообщение # в /var/log/message с тегом INTERNET. message() { /usr/bin/logger -t INTERNET $1 } check_hosts # Хотя бы один хост доступен? if [ $? -eq 0 ]; then # Флаг отсутствия интернета существует? if [ -e ${offline} ]; then # Значит интернет только что появился. message "Network is up" # Удаляем флаг отсутствия интернета. /bin/rm -f ${offline} fi else # Ни один хост не ответил и флага еще нет. if [ ! -e ${offline} ]; then # Значит интернет только что пропал. message "Network is down" # Создаем флаг отсутствия интернета. /usr/bin/touch ${offline} fi fi |
Засовываем вызов скрипта в крон:
# Запускать каждые 5 минут */5 * * * * /path_to_script/lancheck.sh |
Теперь в /var/log/message видно, когда интернет появился или пропал.