wenasss
hice este script para otro hilo, mira a ver si puedes adaptarlo, o especifica un poco mas que quieres que haga...
sirve para reiniciar la conexion adsl en caso de estar caida...
tendria que funcionar en qualquier router que tenga el puerto telnet abiero y lleve un linux embebido dentro.
#!/bin/bash
#configuracion isp y router
dns=80.58.61.250 #pon aqui la dns de tu isp, ahora esta puesta la de telefonica(eliminar en caso de cortar el trozo de mas abajo)
host=192.168.0.1 #aqui la ip de tu ruter
port=23
user=usuario #cambia usuario por el del router
pass=contraseña #cambia contraseña por la del router
#estas son las ordenes que se enviaran al router
cmd1=sh
cmd2="adsl connection --down"
cmd3="adsl connection --up"
cmd4=reboot
#Elimina este trozo si no quieres que compruebe el estado de la conexion de adsl
#ya que solo envia las ordenes al router en caso de estar caida la conexion
if `ping -c 1 $dns> /dev/null` ;then
echo Servidor DNS:Online
else
echo Servidor DNS:Offline
echo Reiniciando ADSL
#eliminar hasta aqui
#este trozo que sigue son las ordenes que se envian al router atraves de telnet(que estan mas arriba)
( echo open ${host}
sleep 1
echo ${user}
sleep 1
echo ${pass}
sleep 1
echo ${cmd1}
sleep 2
echo ${cmd2}
sleep 2
echo ${cmd3}
sleep 2
echo ${cmd4} ) | telnet
fi
ya puestos voy a explicar un poco el codigo...
#!/bin/bash
indica en que lenguaje esta echo el script
dns=
esto es una variable en la cual puedes poner cualquier informacion
simplemente te inventas un nombre seguido de = y luego los datos que quieres que contenga.
para recuperar los datos simplemente usa $variable
if `ping -c 1 $dns> /dev/null` ;then <-- las ` ` sirven para ejecutar comandos y sus resultados usarlos en variables,funciones,etc...
comprueba que el ping del servidor que has puesto en dns > que el tiempo que tarda en enviar el ping a null
en caso afirmativo ejecuta solo los comandos siguientes a then, hasta encontrar else o fi y luego salta a fi sin ejecutar lo
que haya entre los comandos else y fi
en caso negativo ejecutara solamente los comandos entre el else y fi, aunque no es obligatorio la existencia de este bloque
en cuyo caso simplemente no ejecutaria ningun comando entre then y fi.
echo $variable
envia a la salida estandar el valor de la variable
sleep 1
espera 1 segundo
( echo open ${host}
sleep 1
echo ${user}
sleep 1
echo ${pass}
sleep 1
echo ${cmd1}
sleep 2
echo ${cmd2}
sleep 2
echo ${cmd3}
sleep 2
echo ${cmd4} ) | telnet
genera un bufer temporal en memoria con los comandos a usar dentro de telnet
y se lo pasa por su entrada estandar y lo usa en lugar del teclado
el primer comando a ejecutar cmd1 (sh) es para entrar en el shell del router