Autoexpect: Automatización de tareas | Algo de Linux

jueves, 20 de diciembre de 2007

Autoexpect: Automatización de tareas

Expect es una herramienta que permite crear scripts que llamen a programas que necesitan entrada desde teclado.

Lo utilizamos muchas veces en administración de sistemas para realizar scripts en los que necesitamos respuestas del usuario y queremos que la ejecución sea desatendida.

Existe una herramienta llamada autoexpect, un shell script que permite generar scripts de expect sin tener ni idea de cómo se crean.

Autoexpect viene con expect. Lo que sucede es que está un poco escondido. En LinEx, por ejemplo está en el directorio:

/usr/share/doc/expect/examples/

Lo mejor que podemos hacer es instalar expect antes de nada:

# apt-get install expect

Si queremos poder utilizarlo desde cualquier lugar, lo mejor que podemos hacer es copiarlo al directorio /usr/bin/

# cp /usr/share/doc/expect/examples/autoexpect /usr/bin

De todos modos, por si acaso en vuestro expect no viene, lo he colgado en:

http://www.mediafire.com/?cnz0lnghxmz

Utilizar autoexpect es muy sencillo. Veámoslo con un ejemplo: El paquete sun-java5-bin requiere que aceptemos la licencia cada vez que lo instalamos. Pues bien, para aceptar la licencia tan sólo una vez y luego automatizar la instalación sin tener que volver a aceptarla, podemos crear un script con autoexpect:

# autoexpect -f instala_java5.exp apt-get install sun-java5-bin

Con ésto haremos la instalación en una máquina y se nos creará un script, que en este caso hemos llamado instala_java5.exp. Luego, podremos coger este script y ejecutarlo en otra máquina, que la instalación ya se hará automáticamente, sin tener que volver a aceptar la licencia:

# ./instala_java5.exp

También podemos usarlo para automatizar conexiones ftp, ssh ...

No hay comentarios: