Автоматизация переключения между инетом и локалкой
6 июня 2009
| Категории: Linux, Из жизни, Интернет
| Метки: bash, expect, Linux, shell, интернет, локалка, Программирование, скрипт
Так как модем настроен как роутер, совсем неудобно для переключения из инета в местную локалку или наоборот постоянно заходить через веб- или telnet-интерфейс и править имя пользователя PPPoE вручную. Поэтому написал вот такой достаточно простой скриптик для автоматизации этого дела. Для отправки команд через telnet использую замечальнейшую программку expect, собственнно, специально и созданную для автоматизации подобных подключений.
А вот и наш герой:
#!/bin/bash mess='PPP Username =' modem_ip='192.168.1.1' password='admin' node='0' ## получаем имя пользователя Origname=`expect -c 'spawn telnet '$modem_ip';expect "Password" {send "'$password'\r"};expect "MT880" {send "show wan node '$node'\r"};send "exit\r";expect eof' | grep "$mess"` ## если пусто,то ругаемся и валим if [ ${#Origname} == 0 ] then echo "Error due connecting to modem." exit fi ## обрезаем ненужные символы Origname=${Origname#$mess} Origname=${Origname:1} ## смотрим какое имя юзера получили и меняем на нужное if [ "${Origname:0:1}" == "D" ] then echo "Now connected to internet." Newname=${Origname/"D"/"LD"} else echo "Now connected to regional network." Newname=${Origname:1} fi ## устанавливаем новое имя пользователя expect -c 'spawn telnet '$modem_ip';expect "Password" {send "'$password'\r"};expect "MT880";send "set wan node '$node'\r";send "set wan ppp username '$Newname'\r";send "set wan save\r";send "exit\r";expect eof'
Если что это был пока что мой первый более-менее серьезный скрипт =)
Комментировать
| Trackback










