首页 » Web前端 » phpsshexpect技巧_详解Linux中的expect用法实现shell脚本自动交互

phpsshexpect技巧_详解Linux中的expect用法实现shell脚本自动交互

访客 2024-12-01 0

扫一扫用手机浏览

文章目录 [+]

expect是一个免费的编程工具措辞,用来实现自动和交互式任务进行通信,而无需人的干预。
expect是不断发展的,随着韶光的流逝,其功能越来越强大,已经成为系统管理员的的一个强大助手。
expect须要Tcl编程措辞的支持,要在系统上运行expect必须首先安装Tcl。

下面先容一个通过expect来自动ssh连接的脚本,大家可以思考下里面实现的逻辑。

phpsshexpect技巧_详解Linux中的expect用法实现shell脚本自动交互

expect根本

在利用expect时,基本上都是和以下四个命令打交道:

phpsshexpect技巧_详解Linux中的expect用法实现shell脚本自动交互
(图片来自网络侵删)

send命令吸收一个字符串参数,并将该参数发送到进程。
expect命令和send命令相反,expect常日用来等待一个进程的反馈,我们根据进程的反馈,再发送对应的交互命令。
spawn命令用来启动新的进程,spawn后的send和expect命令都是和利用spawn打开的进程进行交互。
interact命令用的实在不是很多,一样平常情形下利用spawn、send和expect命令就可以很好的完成我们的任务;但在一些分外场合下还是须要利用interact命令的,interact命令紧张用于退出自动化,进入人工交互。
比如我们利用spawn、send和expect命令完成了ftp上岸主机,实行下载文件任务,但是我们希望在文件下载结束往后,仍旧可以勾留在ftp命令行状态,以便手动的实行后续命令,此时利用interact命令就可以很好的完成这个任务。
需求:自动连接

实行:/mnt/auto_connect.exp IP password 时 密码精确,则通过 ssh 连接到该 IP 主机,并保持上岸。

1.脚本内容:

# vim auto_connect.sh #!/bin/bash/usr/bin/expect << EOF //切换到expect环境spawn ssh root@$1 //ssh连接IPexpect { \"大众yes/no\公众 { send \"大众yes\r\公众;exp_continue } //确认连接 \"大众password\"大众 { send \"大众$2\r\公众 } //输入密码}Interact //保留EOF //退出

2.实行:

# chmod +x auto_connect.sh //添加可实行权限# sh auto_connect.sh 172.25.254.226 redhat //添加IP和密码spawn ssh root@172.25.254.226The authenticity of host '172.25.254.226 (172.25.254.226)' can't be established.ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '172.25.254.226' (ECDSA) to the list of known hosts.

如果大家能够在事情中闇练的利用Shell脚本就可以很大程度的提高事情效率,再搭配上expect,那么很多事情都可以自动化进行,对事情的展开为虎傅翼。
如果你会Python的话,你的视野将会更加开阔,那个时候你又会“嫌弃”expect了。

后面

标签:

相关文章

房山第一探寻历史文化名区的魅力与发展

房山区,位于北京市西南部,历史悠久,文化底蕴深厚。作为北京市的一个重要组成部分,房山区的发展始终与首都的发展紧密相连。房山区积极推...

Web前端 2025-02-18 阅读1 评论0

手机话费开钻代码数字时代的便捷生活

我们的生活越来越离不开手机。手机话费作为手机使用过程中的重要组成部分,其充值方式也在不断创新。手机话费开钻代码应运而生,为用户提供...

Web前端 2025-02-18 阅读1 评论0

探寻专业奥秘如何查询自己专业的代码

计算机科学已成为当今社会不可或缺的一部分。掌握一门专业代码对于个人发展具有重要意义。面对繁杂的学科体系,如何查询自己专业的代码成为...

Web前端 2025-02-18 阅读0 评论0