CentOS 7 使用 Expect 工具自动化脚本编写

Expect 是一种在 Linux 系统下常用的自动化脚本工具,它可以通过模拟用户输入来控制远程主机,在 CentOS 7 系统中,Expect 工具可以大大提高系统管理员的工作效率,特别是在进行远程登录、文件传输等操作时,本文将介绍如何在 CentOS 7 中安装和配置 Expect,并利用 Expect 编写自动化脚本。
安装 Expect
打开终端。
输入以下命令安装 Expect:
sudo yum install expect
- 安装完成后,可以使用
expect --version命令检查 Expect 的版本。
编写 Expect 脚本
打开文本编辑器,vi 或 nano。
创建一个新的 Expect 脚本文件,
login.sh。
编写以下脚本内容:
#!/usr/bin/expect -f set hostname "192.168.1.100" set username "root" set password "rootpassword" spawn ssh $username@$hostname expect "password:" send "$password\r" interact
保存并关闭文件。
给脚本文件赋予执行权限:
chmod +x login.sh
运行 Expect 脚本
在终端中输入以下命令运行脚本:
./login.sh
如果一切正常,Expect 脚本将自动连接到指定的主机,并提示输入密码。
脚本说明

spawn ssh $username@$hostname:启动一个新的 SSH 连接进程。expect "password:":等待输入密码的提示。send "$password\r":发送密码并回车。interact:将控制权交还给用户,用户可以继续进行其他操作。
FAQs
问题:为什么我的 Expect 脚本无法正常工作?
解答: 请确保以下问题已被解决:
- Expect 脚本文件具有执行权限。
- SSH 服务在目标主机上已启动。
- 脚本中的主机名、用户名和密码正确无误。
- 确保目标主机可以访问。
问题:如何修改 Expect 脚本以支持 HTTPS 连接?
解答: 可以通过以下方式修改 Expect 脚本以支持 HTTPS 连接:
- 使用
expect命令代替spawn命令。 - 在
spawn命令中指定ssl参数。 - 根据需要修改证书验证相关配置。
- 使用

