linux通过expect工具来实现自动登录服务器,并执行相关操作

参考地址:https://www.cnblogs.com/liyuanhong/articles/7728034.html

EOF的使用参考:https://www.cnblogs.com/liyuanhong/articles/7101666.html

expect使用参考:https://www.cnblogs.com/liyuanhong/articles/10390785.html

 

我们要实现登录服务器并创建一个文件,用两种方法来写该脚本:

方法一:shell脚本嵌套执行expect命令(通过 sh test.sh 或 ./test.sh来执行)

#!/bin/bash

/usr/bin/expect <<EOF

#注意使用spawn来执行的命令都是在当前机器来执行的,后面的send发出的命令是在服务器执行的 spawn
ssh liyuanhong@192.168.1.122 expect "password" send "pass\r" expect "liyuanhong"
#登录成功后在服务端执行的命令
send "touch mmm.sh\r"
expect eof
EOF

方法二:直接使用expect脚本(通过./test.sh来执行)

#!/usr/bin/expect
set timeout 5

spawn ssh liyuanhong@192.168.1.122
expect "password"
send "pass\r"
expect "liyuanhong"

#登录成功后在服务端执行的命令 send "touch mmm.sh\r" expect eof

 

posted @ 2019-02-17 13:00  远洪  阅读(1904)  评论(0编辑  收藏  举报