Скрипт восстановления связи при разрыве соединения PPPoE

Модемы на моих серверах соединены по типу 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

Другие статьи

Комментарии (2) на “Скрипт восстановления связи при разрыве соединения PPPoE”

  • Anton:

    Вот реально рабочий скрипт:
    #!/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
    и перезагружаем всю сеть если у нас пропал инет.

  • Anton:

    Что то с кавычками проблемы
    pings=»0″;
    echo «OK» >> /var/log/ppp_restart.log
    Вот так правильно

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

Фотографии из жизни
Рудники близ Уранбаша Водопады на реке Янгиз Музей в Аркаиме <Samsung D70 / D75 / S730 / S750> Большой камень у юго-восточного склона Находки сделанные в Каргалинских медных рудниках
Подписка