File: //scripts.20110531.215904.25158/sshcmd
#!/usr/bin/expect --
set host [lindex $argv 0]
set cmd [lrange $argv 1 99]
set pass [read stdin]
spawn ssh -o "StrictHostKeyChecking no" root@$host echo sshcmdstart\;$cmd\;echo sshcmddone
set timeout 90
expect {
"*assword:" {
sleep 1;
send "$pass\r"
}
"*REMOTE HOST IDENTIFICATION*" {
puts "\n\nsshhostproblem\n"
puts "\n\nsshcmddone\n"
exit
}
"*Name or service not known*" {
puts "\n\nsshhostnotfound\n"
puts "\n\nsshcmddone\n"
exit
}
"*Connection timed out*" {
puts "\n\nsshconnecttimeout\n"
puts "\n\nsshcmddone\n"
exit
}
"*Connection closed*" {
puts "\n\nsshdisconnectproblem\n"
puts "\n\nsshcmddone\n"
exit
}
"*No route to host*" {
puts "\n\nsshdisconnectproblem\n"
puts "\n\nsshcmddone\n"
exit
}
"*Connection refused*" {
puts "\n\nsshdisconnectproblem\n"
puts "\n\nsshcmddone\n"
exit
}
}
set timeout 12000
expect {
"\nsshcmddone" {
sleep 1
exit
}
"Permission denied, please try again*" {
puts "\n\nsshcmdpermissiondeny\n"
puts "\n\nsshcmddone\n"
exit
}
}