вторник, 8 февраля 2011 г.

inetcheck.sh

Скрипт проверяющий работоспособноть интернет соединения
Скрипт принимает решение о работоспособности подключения исходя из доступности определенного ресурса в сети. В случае одного адреса рекомендую вписать провайдерский шлюз.
В данном примере использован "Google Open DNS". Исходя из опыта могу сказать, что принятие решения о работоспособности подключения исходя только из доступности одного ресурса, даже очень стабильного, не совсем корректно. Поэтому в ближайшее время я собираюсь переработать этот скрипт с применением функций на предмет проверки группы адресов (3-5 шт.)
mkdir -p /etc/cron.inet/
nano -w /etc/cron.inet/inetcheck.sh
#!/bin/bash
File="/var/log/pppd.log"
# log file
IP="8.8.8.8"
# Google Open DNS

ping -c 5 -s 100 -i 0.2 $IP > /dev/null
if [ $? -ne 0 ]; then
    echo "======================================" >> $File
    echo " `date` Проверка не пройдена.Инета нет" >> $File
    /etc/init.d/net.ppp0 restart > /dev/null
#Переподключение соединения. Для других OS может отличаться.
    echo " `date` Инет переподключен" >> $File
else
echo "======================================" >> $File  
echo " `date` Проверка пройдена" >> $File
fi
chmod a+x /etc/cron.inet/inetcheck.sh
В данном виде скрипт опирается на доступность $IP.
Вид лог файла при пройденной проверке.
======================================
Wed Feb 9 03:17:01 EET 2011 Проверка пройдена
======================================
Wed Feb 9 03:18:02 EET 2011 Проверка пройдена
======================================
При не пройденной проверке:
======================================
Wed Feb 9 07:38:01 EET 2011 Проверка не пройдена.Инета нет
Wed Feb 9 07:38:04 EET 2011 Инет переподключен

Для постоянной работы скрипта необходимо добавить его в cron
nano -w /etc/crontab
*/1 * * * *    root    /bin/run-parts /etc/cron.inet >/dev/null 2>&1
/etc/init.d/vixie-cron restart
В данном виде скрипт выполняется каждую минуту. Чаще смысла нет, так как подключению необходимо время для завершения.
Переработанный inetcheck.sh, который проверяет работоспособность подключения исходя из установленного перечня IP адресов.

Комментариев нет:

Отправить комментарий