VolgogradLUG : GrableVodstvo/articles/pppdScripts

Оглавление документа

Почему скрипты?

По мере освоения linux начинаешь все больше и больше понимать, как и по какому принципу он работает. И осознаешь, что некоторые вещи можно улучшить, сделать более удобнымы именно для себя. Мне почему-то сразу не понравились готовые системы для соединения с провайдером: Kppp и WvDial. Тут еще провайдер обновил оборудование и наступил критический момент — wvdial перестал работать. Надо было менять либо провайдера, либо разбирать и улучшать систему дозвона до него. Я предпочел второй вариант по нескольким причинам: провайдер меня вполне устраивал, почтовый ящик менять не хотелось, а свою систему хотелось давно. По этому в руки лопаты — работать, работать (как поется в одной очень хорошей песне :) ). В итоге получилась очень даже ничего вещь: полный контроль процесса соединения с провайдером, возможность правильной системы подсчета затраченного времени; ну, и конечно, 30 секундная закачка, хотя это, пожалуй, особенность провайдера, а не самой моей системы. :)


Что надо


  1. Наличие Linux на машине. Учтите, без этого ничего не заработает. :) В моем случае это ALTLinux Master 2.2 от ALTLinux
  2. Один текстовый редактор. Лучше vim (для особо вдвинутых emacs )
  3. Установленные пакеты ppp и ppp-extra.
  4. И конечно не забудь закачать сами скрипты архив (выложить архив)

Все три скрипта ppp-on ppp-off redialer помещаем в /etc/ppp, хотя любая другая папка тоже подойдет. Если папка отличается от /etc/ppp, не забудьте внести изменения в ppp-on.


ppp-on

Как ясно из названия, если кто английский язык конечно знает, этот скрипт отвечает за включение ppp-соединения. PPP расшифровывается как Point To Point протокол. За ppp соединение в linux отвечает программка pppd, но только за него. Дозвоном и регистрацией в системе провайдера занимается другая программка — chat. Эти программки входят в состав пакета ppp из дистрибутива.

Вот собственно и сам скрипт:



Итак

Примечания:
Конструкция типа
применяется мной для ситуаций, когда DIALER_SCRIPT отработал, начинается установка ppp соединения, но на этом этапе происходит ошибка. При отсутсвии параметра updetach у pppd и конструкции выше, скрипт просто подвисает. Особенно это паршиво, если используется 30 секундная закачка ;)
НЕ забудьте добавить строку в /etc/ppp/pap-secrets:



redialer

Этот скрипт отвечает за обработку звонков.

Всю грязную работу выполняет программка chat, а я только должен обрабатывать результат. Я не объясняю синтаксис chat, всегда можно найти эту информацию на соотвествующей man странице.



Объявлены две переменных SLEEP_DELAY (время задержки между перенабором номера) и PHONE (телефон вашего провайдера). Все остальное должно быть понятным.


ppp-off


Вот и выключатель всей этой эпопеи. Он очень простой, когда запускается pppd, то создается файл
/var/run/$DEVICE.pid, где DEVICE=ppp0, в нем указан PID процесса pppd. Все что надо, это убить pppd и убрать файл блокировки /var/run/$DEVICE.pid.



[ / Category Internet ]