Cuando queremos escribir scripts que realicen alguna tarea automatica como puede ser conectarse a un servidor y escribir la password sin necesidad de que estemos delante, solemos recurrir a la utilidad “expect“. Pero usar expect a priori no es tan simple y requiere de algunos conocimientos, para facilitarnos el trabajo, ahora podemos utilizar tambien expect-lite.
expect-lite es una sencilla herramienta de automatizacion. Escrita en expect, esta deiseñada para mapear directamente una sesion interactiva de la terminal en un script de automatizacion. Basicamente los scripts de automatizacion se pueden crear cortando y pegando el texto de una terminal y añadiendo los caracteres “>” para lo que enviamos y “<" para lo que esperamos. Por lo tanto ningun conocimiento de expect es requerido.
Un ejemplo, para conectarnos a una maquina via ssh y ejecutar un comando remoto podriamos ejecutar el siguiente script:
@ 3
>ssh jose@soledad
>latengogrande
# issue a command once logged in
>ls
>exit
Si llamamos al script p.ej ssh.elt (.elt por las siglas de expect lite) podriamos ejecutarlo con:
./expect-lite -c ssh.elt
Otro ejemplo, reiniciar el router podria ser algo como:
@ 3
>telnet 192.168.1.1
>1234
>6666
>reboot
>exit
Para el interesado, En la web del programa podreis encontrar la documentación y varios ejemplos. Pero ya de partido os comento que es mas sencillo de usar que expect, que es de lo que se trataba.