expect 交互 之shell执行命令操作
shell 执行命令操作
/usr/bin/expect -c " proc jiaohu {} { send_user expect_start expect { password { send ${RemotePasswd}\r; send_user expect_eof expect { \"does not exist\" { send_user expect_failure exit 10 } password { send_user expect_failure exit 5 } Password { send ${RemoteRootPasswd}\r; send_user expect_eof expect { incorrect { send_user expect_failure exit 6 } eof } } eof } } passphrase { send ${KeyPasswd}\r; send_user expect_eof expect { \"does not exist\" { send_user expect_failure exit 10 } passphrase{ send_user expect_failure exit 7 } Password { send ${RemoteRootPasswd}\r; send_user expect_eof expect { incorrect { send_user expect_failure exit 6 } eof } } eof } } Password { send ${RemoteRootPasswd}\r; send_user expect_eof expect { incorrect { send_user expect_failure exit 6 } eof } } \"No route to host\" { send_user expect_failure exit 4 } \"Invalid argument\" { send_user expect_failure exit 8 } \"Connection refused\" { send_user expect_failure exit 9 } \"does not exist\" { send_user expect_failure exit 10 } \"Connection timed out\" { send_user expect_failure exit 11 } timeout { send_user expect_failure exit 3 } eof } } set timeout $TimeOut switch $1 { Ssh_Cmd { spawn ssh -t -p $Port -o StrictHostKeyChecking=no $RemoteUser@$Ip /bin/su - root -c \\\"$Cmd\\\" jiaohu } Ssh_Script { spawn scp -P $Port -o StrictHostKeyChecking=no $ScriptPath $RemoteUser@$Ip:/tmp/${ScriptPath##*/}; jiaohu spawn ssh -t -p $Port -o StrictHostKeyChecking=no $RemoteUser@$Ip /bin/su - root -c \\\"/bin/sh /tmp/${ScriptPath##*/}\\\" ; jiaohu } Scp_File { spawn scp -P $Port -o StrictHostKeyChecking=no -r $ScpPath $RemoteUser@$Ip:${ScpRemotePath}; jiaohu } } " state=`echo $?`