Como faço para construir um shell de script para enviar cmd via telnet e registrar apenas os resultados?

0

Eu gostaria de fazer um script de shell que possa chamar um intervalo de IPs via telnet, enviar um comando e gravar o resultado em um arquivo.

    
por Simon 26.08.2014 / 12:49

1 resposta

0

ssh é mais fácil que o telnet:

for host in host1 host2 host3; do
    ssh user@host remote_command with args 
done > result.file

Para login sem senha, configure as chaves ssh

Isso terá bugs, mas algo como:

#!/usr/bin/env expect
exp_internal 1
set out [open "results.txt" w]
foreach ip $argv {
    spawn telnet $ip
    expect "password: "
    send "$password\r"
    expect "% "          ;# this is the prompt, adjust to suit
    sent "the command\r"
    expect -re "([01,]+).*% "
    puts $out "$ip=$expect_out(1,string)"
    send exit
    expect eof
    exp_close
    wait
}
close $out
    
por 26.08.2014 / 15:35