无敌服务器交互脚本

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

相关文章
相关标签/搜索