本地yum 源安装expecct

在写一些自动化脚本的时候, 在使用ssh, scp, ftp 等交互命令时, 就不能完全实现自动化, 必须手动输入密码等信息完成交互, 不能实现完全地自动化, 此时就需要借助于expect了. expect 是一款解决交互式命令自动化的工具, 能实现自动化输入等功能. 由于笔者经常写一些自动化的脚本, 所以expect 是笔者必装的软件之一.
expect 依赖tcl, 需要安装 tcl 和 tcl-devel 依赖,所以需要先安装tcl 和 tcl-devel.

1. 安装

1.1 本地yum 源安装

由于Centos 镜像文件中已经包括了tcl 和 expect 的安装包, 虽然版本有点儿低,但是绝对够用了,而且yum 安装相对来说比较简单,所以笔者就先采用本地yum 源方式安装. 关于如何设置本地yum 源, 请参考???;

1.1.1 安装tcl

[admin@localhost ~]$  sudo yum -y install tcl tcl-devel

1.2 安装expect

[admin@localhost ~]$ sudo yum -y install expect

1.3 检测

[admin@localhost ~]$ expect -v
expect version 5.44.1.15

1.2 源码包安装

TODO

2. expect 常用命令

expect 提供了四个常用命令: send, expect, spawn, interact

  • spawn:启动新的交互进程, 默认和本地标准输入输出交互
  • send:向由span启动的新进程发送命令
  • expect:从span启动的新进程中捕获输出,支持正则表达式
  • interact:介入人工交互

3. expect 使用demo

3.1 ssh 自动登录

#!/usr/bin/expect -f
spawn ssh [email protected]
expect "*password:" { send "root\r" }
interact

3.2 scp 自动下载文件

#!/usr/bin/expect -f

spawn scp [email protected]:/tmp/name.txt .
expect "*password:" { send "root\r" }
interact

results matching ""

    No results matching ""