Você pode tentar TCL / Esperar . É muito útil nessas situações. Aqui segue um exemplo de script (você provavelmente precisará ajustá-lo um pouco):
#!/usr/bin/expect --
if {$argc != 1} {
puts "Wrong parameters."
puts "Usage: $argv0 <ip address router 1> <ip address router 2>"
exit 1
}
# Telnet to router 1
spawn telnet [lindex $argv 0]
expect {
"Username:" {send "myuser\r"}
}
expect {
"assword:" {
send "mypasswd"
send "\r"
}
}
expect "\>"
# Telnet on router 2
# Telnet to router 1
send "telnet [lindex $argv 1]"
expect {
"Username:" {send "myuser\r"}
}
expect {
"assword:" {
send "mypasswd"
send "\r"
}
}
expect "\>"
send "sh ver\r"
expect "\>"
# Quiting router 2
send "quit\r"
expect "\>"
# Quiting router 1
send "quit\r"
expect "Connection closed by foreign host."
wait
exit 0