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
