Главная > Операционные системы > UNIX > BSD > FreeBSD Мониторинг PPPoEВторой раз за два дня начал замечать на одном из серверов, подключенных к провайдеру услуг сети Интернет посредством PPPoE, неприятную ситуацию: само соединение "присутствует", то есть висит оно в ifconfig, при этом как и положено на интерфейсе tun имеется динамически выданный IP адрес, однако связи нет. Раньше уже было такое когда-то и я решил вновь вернуться к старой "затычке" этой баги, ибо каждый раз ковыряться с сервером руцями неинтересно (а если сервер доступен только по сети?): Итак, суть в следущем. Каждые N минут, естественно, по крону, на ближайший узел, обычно DNS провайдера, отправляем 2-3 пакета ping. Если ответ получен, ничего не делаем. Но если ответа мы не получили, рубим ppp демона и снова его стартуем. Плюс еще и письмо об этом строчим админу. </p>Пишем скрипт: #!/bin/sh PINGREPLY="64 bytes from XXX.XXX.XXX.XXX" # Думаю, понятно, что XXX.XXX.XXX.XXX # - это IP адрес пингуемого узла. RESULT=`ping -c 3 XXX.XXX.XXX.XXX | grep "$PINGREPLY"` if [ "$RESULT" = "" ]; then { `/bin/echo $(date +%Y-%m-%d/%H:%M:%S) > /var/tmp/ppp_trouble` `/bin/echo "PPPoE connection trouble!" >> /var/tmp/ppp_trouble` `/usr/bin/killall -9 ppp >> /var/tmp/ppp_trouble` `/bin/echo "PPP Daemon killed!" >> /var/tmp/ppp_trouble` `/bin/sleep 5` `/usr/sbin/ppp -ddial providername >> /var/tmp/ppp_trouble` `/usr/bin/mail -s "PPPoE trouble" root < /var/tmp/ppp_trouble` `/bin/rm /var/tmp/ppp_trouble` } else { # При необходимости, при положительном результате # проверки соединения, можно сюда что-то еще втулить. } fi exit Как видите, все очень просто. Но выручает! Ох как выручает! А если пригодится кому-то еще кроме меня, можете высказать благодарность. Скрипт был написан когда-то на скорую руку, когда он очень был актуален: Надеюсь, нынче не настанут снова те самые времена, когда соединение переподнималось по сто раз на день. Дальше этот скрипт просто остается запихнуть в crontab и на свое усмотрение выставить интервал проверки связи. Можно от 3 до 5 минут. Трафика много не сожрет, не переживайте. Кто-то может возразит "зачем изобретать велосипед, когда есть Link Quality Request?". Отвечу. Не знаю, может у меня (или на оборудовании провайдера) "клинический" случай, но опции enable lqr set lqrperiod 5 добавленные когда-то в ppp.conf меня не выручают. Хотя, насколько я понял из мануалов, должны: Главная > Операционные системы > UNIX > BSD > FreeBSD |