Sv Community El Salvador

Soporte y Tecnología => Programación => Scripts => Mensaje iniciado por: vlad en septiembre 10, 2007, 12:04:42 pm

Título: [BASH] Envio de comandos a una sesión no dinamica de Telnet
Publicado por: vlad en septiembre 10, 2007, 12:04:42 pm
Este es un muy pequeño script que quiero compartirles, lo hice en su momento con un proposito muy especifico: enviar comandos via telnet desde la terminal usando el menor codigo posible.

Resultado: Uso de pipas y el cliente Telnet por defecto hicieron todo lo necesario :)

El script usa por defecto el cliente Telnet que tiene instalado el sistema (y que tenga por nombre "Telnet") para mandar los comandos, pero puede ser facilmente modificado al cliente de su preferencia.

Nota: Necesitan un Telnet que no use ncurses y que no sea muy viejo, yo lo probé con el que trae Xubuntu 7.04 en Net Kit 0.17 (viene por defecto con el sistema)



Uso:


$ sh atelnet.sh

No verán ninguna salida al ejecutarse el script sugiero prueben con comandos conocidos primero para asegurarse que los comandos se esten enviando



Utilidad:


*Como automatizador de tareas via telnet tales como resetear un router
*Como ejemplo de uso de telnet en la terminal
*Como juguete/curiosidad  :phew:



Codigo:

  (
    sleep 2
    echo "Admin"
    sleep 2
    echo "ZyxeL"
    sleep 2
    echo "reboot"
    sleep 2
   ) | telnet 192.168.1.1 23


Guarden eso en un archivo "atelnet.sh" (si siguen el ejemplo) o cualquier otro nombre que deseen pero siempre como ".sh"

Ese ejemplo al ejecutarse reseteara cualquier router Xavi 8022r o US Starcom 4110a (y otros basados en los mismos chips)

Basicamente lo que esta entre parentesis son los comandos, los "sleep 2" es para darle 2 segundos al router para que responda, si lo piensan hacer para mandarlo a un host que no sea de red local, consideren subir el tiempo de sleep para darle tiempo al host que responda dada la posibilidad de congestionamiento en la red que puede existir.

Lo que esta en negrita es el host de destino y lo que esta en cursiva es el puerto de destino.

Saludos.  carro.
Título: Re: [BASH] Envio de comandos a una sesión no dinamica de Telnet
Publicado por: rcguillen en septiembre 10, 2007, 12:54:03 pm
Puya esta buenisimo Vlad...excelente  :thumbsup:
Título: Re: [BASH] Envio de comandos a una sesión no dinamica de Telnet
Publicado por: Jaru en septiembre 10, 2007, 01:01:19 pm
hey no tendras algo asi para enviar y leer datos desde el puerto serial de la PC? en linux klaro y desde el back? asi uso PIPES o acceso a la consola desde mi codigo para poder manejar el puerto de una manera facil y sencilla.
sera ke tendras algo por ahi?
Título: Re: [BASH] Envio de comandos a una sesión no dinamica de Telnet
Publicado por: vlad en septiembre 10, 2007, 01:59:03 pm
Ya probaste con stty?
Título: Re: [BASH] Envio de comandos a una sesión no dinamica de Telnet
Publicado por: Jaru en septiembre 10, 2007, 02:09:13 pm
Ya probaste con stty?
si pero no rekuerdo haber tenido resultados exitosos :(
Título: Re: [BASH] Envio de comandos a una sesión no dinamica de Telnet
Publicado por: vlad en septiembre 10, 2007, 02:26:42 pm
Y cual(es) fue(ron) el|los problema(s)?
Título: Re: [BASH] Envio de comandos a una sesión no dinamica de Telnet
Publicado por: rdoggsv en septiembre 10, 2007, 03:14:16 pm
usa c++ naruto no seas haragan jajaja
Título: Re:[BASH] Envio de comandos a una sesión no dinamica de Telnet
Publicado por: vlad en febrero 04, 2010, 02:33:30 pm
Justo probando esto de nuevo me doy cuenta que ahora es necesario enviar el \r\n, asi que actualizando:

Código: [Seleccionar]
(
sleep 2
echo -e "admin\r\n"
sleep 2
echo "Tu$64TEL\r\n"
sleep 2
echo "reboot\r\n"
sleep 2
) | telnet 192.168.1.1 23

Yo estoy usandolo ahorita con cron para cada media hora resetear el router y desmotivar a las personas que bajan archivos gigantes a maxima velocidad, saturando la conexion para todas las otras personas...

Lo malo es que no frena de que usen Ares/Torrents/P2P en general.