Rogerio Ferreira

   
You are here: Home Downloads Eliminando a intervenção humana com Expect
Document Actions

Eliminando a intervenção humana com Expect

Expect é uma ferramenta para automatizar a interação com aplicações como telnet, ftp, passwd, ssh, etc.

Instalando o Expect

Instalação no Debian:

# aptitude install expect

Instalação no CentOS:

# yum install expect

Conteúdo do Script

#!/usr/bin/expect -f

# Define o timeout. O -1 significa que vai ficar
# aguardando uma resposta por tempo indeterminado.
set timeout -1

# Define as variaveis
set user [lindex $argv 0]
set host [lindex $argv 1]
set cmd [lindex $argv 2]
set pass [lindex $argv 3]

# Executa comando via ssh no host remoto
spawn ssh ${user}@${host} ${cmd}

# Faz uma especie de case
expect {
"*re you sure you want to continue connecting*"
{
send "yes\n"
expect {
"*assword*"
{
send "${pass}\n"
}
}
}
"*assword*"
{
send "${pass}\n"
}
}

# Finaliza a instrucao
expect eof

Executando o script

# chmod +x cmd.exp
# ./cmd.exp "root" "192.168.1.100" "df -h" "senhadoservidor"
spawn ssh root@192.168.1.100 df -h
root@192.168.1.100's password:
Sist. Arq. Tam Usad Disp Uso% Montado em
/dev/hda2 29G 6,5G 21G 24% /
/dev/hda1 99M 17M 78M 18% /boot
tmpfs 474M 0 474M 0% /dev/shm

Mais informações sobre Expect

Exploring Expect