無敵服務器交互腳本

注意要執行的操做放在註釋那行的下面 用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

相關文章
相關標籤/搜索