千家信息网

图文教程自动登录expect脚本实例

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,简介:1.expect的讲解2.实例操作自动登录脚本expect讲解expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远
千家信息网最后更新 2026年10月31日图文教程自动登录expect脚本实例

简介:

1.expect的讲解

2.实例操作自动登录脚本


expect讲解


expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。


Expect中最关键的四个命令是send,expect,spawn,interact。

send:用于向进程发送字符串
expect:从进程接收字符串
spawn:启动新的进程
interact:允许用户交互


1. send命令


send命令接收一个字符串参数,并将该参数发送到进程。


expect1.1> send "hello world\n"hello world


2. expect命令


expect命令和send命令正好相反,expect通常是用来等待一个进程的反馈。expect可以接收一个字符串参数,也可以接收正则表达式参数。


expect "hi\n"send "hello there!\n"


这两行代码的意思是:从标准输入中等到hi和换行键后,向标准输出输出hello there



3. spawn命令


上文的所有demo都是和标准输入输出进行交互,但是我们跟希望他可以和某一个进程进行交互。spawm命令就是用来启动新的进程的。


set timeout -1spawn ftp ftp.test.com //打开新的进程,该进程用户连接远程ftp服务器

expect "Name" //进程返回Name时

send "user\r" //向进程输入

anonymous\rexpect "Password:" //进程返回Password:时

send "123456\r" //向进程输入don@libes.com\r

expect "ftp> " //进程返回ftp>时

send "binary\r" //向进程输入binary\r

expect "ftp> " //进程返回ftp>时

send "get test.tar.gz\r" //向进程输入get test.tar.gz\r



4.interact

到现在为止,我们已经可以结合spawn、expect、send自动化的完成很多任务了。但是,如何让人在适当的时候干预这个过程了。比如下载完ftp文件时,仍然可以停留在ftp命令行状态,以便手动的执行后续命令。interact可以达到这些目的。下面的demo在自动登录ftp后,允许用户交互。

spawn ftp ftp.test.com

expect "Name"

send "user\r"

expect "Password:"

send "123456\r"

interact





2台主机


服务端:back :192.168.19.134

客户端:other:192.168.19.135





服务端操作


1.使用expect之前,需要先安装expect:


yum install -y expect


安装ssh


yum install openssh-server -y


yum -y install openssh-clients

2.新建一个自动登录脚本文件



格式:


spawn ssh -l username 192.168.1.1


expect{

"(yes/no)?" { send "yes"; exp_continue}

"password:" {send "AAAA"}

}

interact




vim login.expect

#! /usr/bin/expect

#about login

#written by lizheng

set host "192.168.19.135"

set passwd "lizheng123"

spawn ssh root@$host

expect {

"yes/no" { send "yes\r"; exp_continue}

"password:" { send "$passwd\r" }

}

interact




3.更改权限


chmod +x login.expect



4.执行脚本语句


./login.expect


输入客户机的密码即可登录



5.退出


logout


进程 命令 登录 输入 脚本 参数 字符 字符串 密码 标准 用户 服务 输出 客户 密钥 文件 时候 机器 验证 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 蓝思科技飞鸽互联网 科技企业和互联网企业 新浪科技互联网 恒生科技互联网指数分析 互联网科技寓意 互联网金融中的现代科技 互联网科技革命什么开始 健康食品互联网创新科技园项目 东莞新华互联网科技学校 云南省自由互联网科技有限公司 宇信科技在杭州互联网排第几 风投北京互联网科技 2021世界互联网领先科技成果发布 上海乐五互联网科技有限公司 第三届互联网大会安防黑科技 河南商务圈互联网科技有限公司 宁波允成互联网科技有限公司 利用互联网等科技手段 株洲百竞科技的互联网营销顾问 互联网科技股 上海卓越科技互联网 工业互联网科技新基建 科技创新互联网企业 亿人帮互联网科技 互联网科技股有哪些 江苏南京365互联网科技 互联网科技创新服务 四川慕妮娅互联网科技有限公司 版纳互联网科技选哪家
0