背景

开发中,经常会有一些任务需要人机交互,比如登录到某台server上,远程拷贝其上的软件,并分发到其他sever上。
传统的操作方式,会产生开发人员与计算机的交互,如等待用户输入密码之类的操作会打断自动化流程的实现。

解决方案

使用expect + 其内部命令 spawn 可以实现类似的自动化需求。
centos可以通过如下命令快速安装expect组件:

yum -y install expect

案例1

脚本1:test1.sh
实现功能:

远程登录到server上,并执行指定的操作,如:
①、启动某服务进程;
②、文件或文件夹操作;
③、scp操作;
#!/usr/bin/expect

set timeout 10
spawn ssh [email protected]
expect "*password*"
send "abc123\r"
expect "#"
#send "service scm-agent status\r"
send "mkdir -p ~/david/test \r"
expect eof

案例2

脚本:test2.sh
实现功能:


①、远程登录到server上;
②、在超时时间内(这里为60秒),等待用户在远程server上实现交互式操作。
#!/usr/bin/expect 
set timeout 60 
spawn ssh -l root 111.111.111.111
expect "password:"
send "abc123\r"
interact

参考列表

标签: Linux, server, send, expect, 操作, spawn

相关文章推荐

添加新评论,含*的栏目为必填