Автоматизация переключения между инетом и локалкой

Так как модем настроен как роутер, совсем неудобно для переключения из инета в местную локалку или наоборот постоянно заходить через веб- или 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'

Если что это был пока что мой первый более-менее серьезный скрипт =)

Поделиться
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • LiveJournal
  • FriendFeed
  • Blogger
  • Блог Я.ру
  • Одноклассники
Пока комментариев нет.