У меня есть шлюзик на Debian. На нем 3G модем. Данный скрипт запускает соединение при старте системы и проверяет каждые 10 секунд есть ли соединение с Интернетом. Если нет – соединяется.
Итак, листинг скрипта:
# cat /scripts/inet_watchdog.sh
#!/bin/bash
# Что будем пинговать
HOST="8.8.8.8"
# Сюда пишем логи
LOGFILE="/var/log/internet.log"
# Начинаем бесконечный цикл
while true; do
# Если хост не пингуется - убиваем wvdial на всякий случай и запускаем опять
ping -c 3 -n -q ${HOST} > /dev/null
if [ $? -ne "0" ]; then
# Пишем лог
echo `date +'%Y/%m/%d %H:%M:%S'` Internet connection LOST >> ${LOGFILE}
kill -9 `pidof wvdial`
wvdial
fi
sleep 10
done
Этот скрипт стоит у меня прямо в cron.
# cat /etc/crontab
@reboot root /scripts/inet_watchdog.sh &