☆注意要執行的操做放在註釋那行的下面 用send包起來☆bash
本例中是進入指定目錄,開始一個程序。ssh
#!/usr/bin/expect ##author:stevenrao ##打開 ssh 終端,省去密碼交互腳本 if { $argc==0 } { send "usage: $argv0 ip \[port\]\n"; exit } #要打開的遠程機器ip 端口 set ip [lindex $argv 0] set port 22 if { $argc==2 } { set port [lindex $argv 1] } #日誌文件,一ip爲文件名 log_file $ip log_user 1 #用戶名密碼 set user root set password cwvbu3knna #啓動ssh登陸進程 spawn /usr/bin/ssh -p $port $user@${ip} set myid $spawn_id set timeout 10 while { [string length $myid] } { #提示符 set prompt "(%|#|\\$|>|\\])" catch {set prompt $env(EXPECT_PROMPT)} expect { "*tcsetattr failed*" { send_log "\n${ip},sshsyscallerror\n"; break } "*Authentication failed*" { break } "*yes/no*" { send "yes\n" } "*password: " { send "$password\n" } timeout { send_log "\n${ip},logintimeout\n" exit } -re $prompt { set timeout 1 send_log "\n${ip},loginsuccess\n" ##登陸成功,這裏放你想要執行的交互腳本 send "cd /usr/local/court/jusspider-1.0-RELEASE/bin\n" send "sh start.sh\n" send "exit\n" interact;exit expect eof { send_log "eof\n" exit } } } }
就這樣,祝你們套用成功^_^ide