Vía: Ubuntu Life Este tip nos puede interesar a todos los que usamos shell script para conectar a diferentes máquinas, mediante por ejemplo FTP o telnet, o hacer otro determinado tipo de tareas. Conectar a una máquina mediante telnet requiere que estés presente y tengas que introducir el usuario y la contraseña. Si, podrías hacer algo como: Que aunque perfectamente valido, no es lo mas optimo. Para evitar toda esta “parafernalia” existe un interprete que podemos utilizar, se llama “expect“. Si no lo tienes instalado en tu maquina, puedes hacerlo con: Basicamente el funcionamiento es muy simple. con “expect” esperamos a leer un determinado texto, y con “send” le enviamos una determinada cadena como si la hubieramos introducido por teclado. Aqui por ejemplo te dejo un shell script donde se hace un telnet a una maquina remota para listar el contenido del directorio principal: Como ves, lo primero que hago es un telnet a la maquina remota y espero por la cadena “login:” (o la que corresponda en tu casa), le envio el usuario y me espero a por la cadena “Password:” (o la que corresponda en tu caso), le envio el password y me espero a recibir el prompt del sistema “>”, etc… solo se trata de enviar, y recibir, de meter y sacar… (vaya ya estoy desvariando otra vez ^^). Importante, expect es sensible a mayusculas y minusculas, si pones mal la cadena que esperas recibir, se quedara como bloqueado y no continuara, asi que asegurate de poner bien los textos correspondientes segun tu caso. ¿Y me diras? Muy bonito, pero a mi esto no me sirve de nada. Bueno, tiene muchas aplicaciones, incluso hay personas que lo usan para descargarse series de television sin necesidad de estar pendientes del nuevo capitulo, automatizan un feed que les indica cuando un capitulo esta disponible y se lo descargan de manera automatica. ¿No lo crees?. Aqui tienes un enlace. Asi que no se, es cuestion de que le eches imaginacion, en Administracion de Sistemas si te aseguro que es un comando de lo mas potente. Telnet automatico con Script
(sleep 3; echo username; sleep 3; echo password; sleep 5; echo “ls -l”; sleep 3; echo “exit”) | telnet hostname
$ sudo apt-get install expect
#!/usr/bin/expect -f
spawn telnet maquina
expect "login:"
send "root\r"
expect "Password:"
send "pasa_palabra\r"
expect ">"
send "ls -l\r"
expect ">"
exit
Si te interesa en los siguientes enlaces encontraras mas informacion:
Tutorial de expect
Expect, sitio oficial
Tranquilo pero expectante
Automatizacion de telnet
Creacion de scripts sin intervencion del usuario
Lección final de Intypedia (número 14) ya disponible.
-
Como en tantas otras ocasiones, nos hacemos eco de la publicación de una
nueva lección desde Intypedia, en este caso la última y no por ello menos
interesa...
Hace 1 hora.












0 comentarios:
Publicar un comentario en la entrada