zoukankan      html  css  js  c++  java
  • expect 交互 之shell执行命令操作

    shell 执行命令操作

    /usr/bin/expect -c "
    proc jiaohu {} {
        send_user expect_start
        expect {
            password {
                send ${RemotePasswd}
    ;
                send_user expect_eof
                expect {
                    "does not exist" {
    send_user expect_failure
    exit 10
                    }
                    password {
    send_user expect_failure
    exit 5
                    }
                    Password {
    send ${RemoteRootPasswd}
    ;
    send_user expect_eof
    expect {
        incorrect {
            send_user expect_failure
            exit 6
        }
        eof 
    }
                    }
                    eof
                }
            }
            passphrase {
                send ${KeyPasswd}
    ;
                send_user expect_eof
                expect {
                    "does not exist" {
    send_user expect_failure
    exit 10
                    }
                    passphrase{
    send_user expect_failure
    exit 7
                    }
                    Password {
    send ${RemoteRootPasswd}
    ;
    send_user expect_eof
    expect {
        incorrect {
            send_user expect_failure
            exit 6
        }
        eof
    }
                    }
                    eof
                }
            }
            Password {
                send ${RemoteRootPasswd}
    ;
                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 $?`
  • 相关阅读:
    【二次开发】shopxo商城
    经典的PHPer为什么被认为是草根?
    PowerDesigner生成Access数据库
    NET开发学习项目资源
    ASP.NET程序开发范例宝典
    Web.Config文件配置小记
    NET开发学习项目资源(2)
    VS 2010一步步开发windows服务(windows service)
    jquery.mobile手机网页简要
    Android置底一个View后运行报错
  • 原文地址:https://www.cnblogs.com/sharesdk/p/8710066.html
Copyright © 2011-2022 走看看