Модемы на моих серверах соединены по типу bridge. К сожалению это повлекло за собой определенные проблемы, касающиеся разрыва связи. По идее соединение должно восстанавливаться само, но при длительных разрывах это не происходит. Поэтому пришлось создать скрипт и поставить его в крон.
Судя по логам скрипт отрабатывает свою задачу как надо. Но есть и непонятные пока вещи, к примеру, иногда связь пропадает полностью. Причем перезагрузка модема и новый запуск данного скрипта связь не восстанавливает, помогает только перезагрузка ПК целиком.
Скрипт расположен по адресу: /usr/home/user/scripts/ppp-restart
ppp-restart
#!/bin/sh -xv
pings=`/sbin/ping -c 3 213.135.97.131 | grep -c «64 bytes»`
if [ $pings -gt 0 ]
then
:
else
/usr/bin/killall ppp
kill -9 `cat /var/run/tun0.pid`
sleep 5
/usr/sbin/ppp -ddial vtc
DATE=`date ‘+%Y-%m-%d %H:%M:%S’`
PPP_RESTART_LOG=/var/log/ppp_restart.log
echo ${DATE} «[ERROR] Not request from 213.135.97.131» >> $PPP_RESTART_LOG
fi
Задание для крона:
*/1 * * * * /bin/sh /usr/home/user/scripts/ppp-restart
ppp.conf
default:
set device PPPoE:re0:vtc
set speed sync
set mru 1492
set mtu 1492
set ctsrts off
set timeout 0 # 3 minute idle timer (the default)
set redial 0 0
enable lqr
set lqrperiod 5
vtc:
set authname мой_логин
set authkey мой_пароль
add default HISADDR
Что то с кавычками проблемы
pings=»0″;
echo «OK» >> /var/log/ppp_restart.log
Вот так правильно
Вот реально рабочий скрипт:
#!/bin/bash
pings=»0″;
a=5;
pings=`ping -c $a 8.8.8.8 | grep -c «ttl»`
if [ «$pings» = «$a» ]; then
echo «OK» >> /var/log/ppp_restart.log
else
poff -a
sleep 5
pon dsl-provider
date >> /var/log/ppp_restart.log
fi
Этот скрипт хорошо работает если у вас не стабильная сессия. В моем случае это не всегда помогало, тк у меня иногда обрывается именно сеть, и получается так что у меня локалка типа есть, но ни чего не работает. Поэтому просто меняем одну команду
#!/bin/bash
pings=»0″;
a=5;
pings=`ping -c $a 8.8.8.8 | grep -c «ttl»`
if [ «$pings» = «$a» ]; then
echo «OK» >> /var/log/ppp_restart.log
else
/etc/init.d/networking restart
date >> /var/log/ppp_restart.log
fi
и перезагружаем всю сеть если у нас пропал инет.