expect 交互 之shell执行命令操作

shell 执行命令操作

/usr/bin/expect -c "
proc jiaohu {} {
    send_user expect_start
    expect {
        password {
            send ${RemotePasswd}\r;
            send_user expect_eof
            expect {
                \"does not exist\" {
send_user expect_failure
exit 10
                }
                password {
send_user expect_failure
exit 5
                }
                Password {
send ${RemoteRootPasswd}\r;
send_user expect_eof
expect {
    incorrect {
        send_user expect_failure
        exit 6
    }
    eof 
}
                }
                eof
            }
        }
        passphrase {
            send ${KeyPasswd}\r;
            send_user expect_eof
            expect {
                \"does not exist\" {
send_user expect_failure
exit 10
                }
                passphrase{
send_user expect_failure
exit 7
                }
                Password {
send ${RemoteRootPasswd}\r;
send_user expect_eof
expect {
    incorrect {
        send_user expect_failure
        exit 6
    }
    eof
}
                }
                eof
            }
        }
        Password {
            send ${RemoteRootPasswd}\r;
            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 $?`

 

posted @ 2018-04-03 17:52  01234567  阅读(458)  评论(0编辑  收藏  举报