zoukankan      html  css  js  c++  java
  • expect 交互 模拟ssh 登陆

    模拟ssh登录

    #!/bin/bash
    Ip='192.168.1.6'            # 循环就行
    RemoteUser='user'           # 普通用户
    RemotePasswd='userpasswd'   # 普通用户的密码
    RemoteRootPasswd='rootpasswd'
    /usr/bin/expect -c "
    set timeout -1
    spawn ssh -t -p $Port -o StrictHostKeyChecking=no $RemoteUser@$Ip
    expect {
        password {
            send_user RemotePasswd
            send ${RemotePasswd}
    ;
            expect {
                "does not exist" {
    send_user "root user does not exist
    "
    exit 10
                }
                password {
    send_user "user passwd error
    "
    exit 5
                }
                Last {
    send "su - batch
    "
    expect {
        Password {
            send_user RemoteRootPasswd
            send ${RemoteRootPasswd}
    ;
            expect {
                "]#" {
    send "sh /tmp/update.sh update
     "
    expect {
        "]#" {
            send_user ${Ip}_Update_Done
    
        }
        eof
    }
                }
            }
        }
    }
                }
            }
        }
        "No route to host" {
            send_user "host not found
    "
            exit 4
        }
        "Invalid argument" {
            send_user "incorrect parameter
    "
            exit 8
        }
        "Connection refused" {
            send_user "invalid port parameters
    "
            exit 9
        }
        "does not exist" {
            send_user "root user does not exist"
            exit 10
        }
        timeout {
            send_user "connection timeout 
    "
            exit 3
        }
        eof
    }
    "
    state=`echo $?`
  • 相关阅读:
    【NOI2008】志愿者招募
    【NOI2015】小园丁和老司机
    【TJOI2007】小朋友
    【HNOI2008】神奇的国度
    【CTSC2014】企鹅QQ
    【CQOI2014】通配符匹配
    【JSOI2008】火星人
    【SCOI2007】压缩
    【ZJOI2009】对称的正方形
    【LOJ#6066】同构子树
  • 原文地址:https://www.cnblogs.com/sharesdk/p/8710095.html
Copyright © 2011-2022 走看看