init
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
#!/usr/bin/expect --
|
||||
|
||||
if { [llength $argv] < 4 } {
|
||||
puts "Usage: $argv0 ip user passwd port commands timeout"
|
||||
exit 1
|
||||
}
|
||||
|
||||
match_max 600000
|
||||
|
||||
set ipcode [lindex $argv 0]
|
||||
set ip [exec dc -e $ipcode]
|
||||
set user [lindex $argv 1]
|
||||
set passwdcode [lindex $argv 2]
|
||||
set passwd [exec dc -e $passwdcode]
|
||||
set portcode [lindex $argv 3]
|
||||
set port [exec dc -e $portcode]
|
||||
set commands [lindex $argv 4]
|
||||
set timeoutflag [lindex $argv 5]
|
||||
|
||||
set yesnoflag 0
|
||||
set timeout $timeoutflag
|
||||
|
||||
|
||||
for {} {1} {} {
|
||||
# for is only used to retry when "Interrupted system call" occured
|
||||
|
||||
spawn /usr/bin/ssh -o GSSAPIAuthentication=no -q -l$user -p$port $ip
|
||||
|
||||
expect {
|
||||
|
||||
"assword:" {
|
||||
send "$passwd\r"
|
||||
break;
|
||||
}
|
||||
|
||||
"yes/no)?" {
|
||||
set yesnoflag 1
|
||||
send "yes\r"
|
||||
break;
|
||||
}
|
||||
|
||||
"FATAL" {
|
||||
puts "\nCONNECTERROR: $ip occur FATAL ERROR!!!\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
timeout {
|
||||
puts "\nCONNECTERROR: $ip Logon timeout!!!\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
"No route to host" {
|
||||
puts "\nCONNECTERROR: $ip No route to host!!!\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
"Connection Refused" {
|
||||
puts "\nCONNECTERROR: $ip Connection Refused!!!\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
"Connection refused" {
|
||||
puts "\nCONNECTERROR: $ip Connection Refused!!!\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
"Host key verification failed" {
|
||||
puts "\nCONNECTERROR: $ip Host key verification failed!!!\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
"Illegal host key" {
|
||||
puts "\nCONNECTERROR: $ip Illegal host key!!!\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
"Connection Timed Out" {
|
||||
puts "\nCONNECTERROR: $ip Logon timeout!!!\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
"Interrupted system call" {
|
||||
puts "\n$ip Interrupted system call!!!\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if { $yesnoflag == 1 } {
|
||||
expect {
|
||||
"assword:" {
|
||||
send "$passwd\r"
|
||||
}
|
||||
|
||||
"yes/no" {
|
||||
set yesnoflag 2
|
||||
send "yes\r"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if { $yesnoflag == 2 } {
|
||||
expect {
|
||||
"assword:" {
|
||||
send "$passwd\r"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
expect {
|
||||
"@" {send "$commands \r"}
|
||||
"assword:" {
|
||||
send "$passwd\r"
|
||||
puts "\nPASSWORDERROR: $ip Password error!!!\n"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
expect {
|
||||
"@" {send "sleep 1\r"}
|
||||
}
|
||||
|
||||
expect {
|
||||
"@" {send "exit\r"}
|
||||
}
|
||||
|
||||
expect eof {
|
||||
puts "OK_SSH: $ip\n"
|
||||
exit 0;
|
||||
}
|
||||
Reference in New Issue
Block a user