为什么要使用Expect ?
在执行 ssh 远程登录时,有时候需要在配置了密钥文件的情况下仍然需要输入密码,这一步骤无法省略,而密码冗长有让我们有必要采取措施来绕过密码输入的步骤。而 Expect 就能够非常简单的完成此任务。
Expect 简介
Expect是Unix系统中用来进行自动化控制和测试的软件工具,由DonLibes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制;也可利用Tk工具,将交互程序包装在X11的图形用户界面中。 简单地说,expect是一个工具,可以根据用户设定的规则和系统进程进行自动化交互,例如远程登陆的密码输入、自动化的执行远程命令。
Expect 基本命令
send:用于向进程发送字符串
expect:从进程接收字符串
spawn:启动新的进程
interact:允许用户交互
编写脚本
1 | #!/usr/bin/expect |
ps: 注意将上方的参数替换成自己相应的设置。
执行脚本
添加可执行权限,并执行该脚本,就可以自动连上远程的服务器了。