*. Vamos a ver unos ejemplos de como podriamos usar este comando.*
*. Con el expect vamos a poder automatizar tareas utilizando las siguientes aplicaciones telnet, ftp, passwd, fsck, rlogin, tip, ssh, entre otros usos este es el mas particular.*
Para mas info : Expect
*. Ahora si empezamos haciendo una conexion remota con ssh pasandole la clave y ejecuntado una serie de comandos.*
#!/usr/bin/expect
#Setear valores para mi automatizacion
set timeout 1
#el tiempo de respuesta
set user {educacionit}
#Seteo el usuario
set host {172.16.199.167}
#Seteo el equipo
set password {educacionit}
#Seteo password
set cmd {uname -a}
#que ejecuta cuando manda cmd
spawn ssh $user@$host
#adonde me conecto
expect_after eof { exit 0 }
#que hacer despues de terminar
## Interactuando con ssh
expect "yes/no" { send "yes\r" }
#si entro por primera vez
expect "password:" { send "$password\r" }
#mando passwd
expect "$ "
#espero despues del password un prompt
send "$cmd\r"
#mando el comando
expect "$cmd\r"
#espero la salida del comando
expect "(.*)\r"
#espero cualquiera valor idem *
send "exit\r"
#mando salida
*. Aca podemos ver como nos conecta.*
stationx:~# ./.conectar3 spawn ssh root@172.16.199.167 root@172.16.199.167's password: Linux stationx 2.6.26-2-686 #1 SMP Tue Mar 9 17:35:51 UTC 2010 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Aug 22 01:59:15 2010 from 172.16.199.168 stationy:~# uname -a Linux stationy 2.6.26-2-686 #1 SMP Tue Mar 9 17:35:51 UTC 2010 i686 GNU/Linux stationy:~# stationx:~#
*. Luego vemos que finaliza la conexion y estamos devuelta en nuestro equipo.*
*. Imaginense la cantidad de cosas que pueden hacer.. esto es tan solo un ejemplo.*
*.Otro ejemplo de como podemos usar el expect pero usando el shebang #!/bin/bash.*
stationx:~# cat .conectar #!/bin/bash #HOST="remote-hostname" #USER="remote-user" #PASS="remore-user-password" #CMD=$@ HOST="172.16.199.167" USER="educacionit" PASS="educacionit" CMD=$@ VAR=$(expect -c " spawn ssh -o StrictHostKeyChecking=no $USER@$HOST $CMD match_max 100000 expect \"*?assword:*\" send -- \"$PASS\r\" expect \"$ \" #send -- \"\r\" send \"ls -la\r\" expect \".*\" send \"exit\r\" expect eof ") echo "===============" echo "$VAR" stationx:~#
*.Fuentes.*
Ejemplo 1 Ejemplo 2 Ejemplo 3

The Usando Expect by ITRestauracion, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.