如何在shell中使用expect命令进行远程执行命令脚本
发表于:2023-03-21 作者:安全数据网编辑
编辑最后更新 2023年03月21日,如何在shell中使用expect命令进行远程执行命令脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。expect是用来实现自动交互功
如何在shell中使用expect命令进行远程执行命令脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程。
注意:
1、脚本的执行方法与bash shell不一样,比如:expect example.sh
2、向一个脚本传递参数时,bash shell是使用$1,$2...来接收参数的;而expect则将脚本的执行参数保存在数组$argv中,在脚本中一般将其赋值给变量:set 变量名 [lindex $argv 参数]
#!/usr/bin/expectset ip [lindex $argv 0]set password [lindex $argv 1]set timeout 2spawn telnet $ipexpect "*femto login:"send "root\r"expect "*Password:"send "$password\r"# 进入指定的机器后,就可执行相应的命令或者脚本interact#expect eof
注意:若登陆后便退出远程终端,则写expect eof
即可。
3、执行脚本
expect autologin.sh 192.168.1.240 root
很多时候,需要用expect命令实现登录远端服务器执行简单命令,诸如:重启服务器,ftp,ls, scp等命令。 里面涉及到输入密码的交互式场景,这个时候expect命令的巨大功效就出来了,下面是一个比较经典脚本实现:
#!/usr/bin/tclshpackage require Expectset host_ip1 [lindex $argv 0]set host_usr [lindex $argv 1]set host_pwd [lindex $argv 2]spawn ssh $host_usr@$host_ip1set timeout 60expect { -re "password" {send "$host_pwd\n"} -re "yes/no" {send "yes\n";exp_continue} # 有的时候输入几次密码来确认,exp_continue}expect "#"send "ls /home/${host_user} | tee -a /tmp/ls.txt \r"expect "#"send "exit\r"expect eof
看完上述内容,你们掌握如何在shell中使用expect命令进行远程执行命令脚本的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
c语言网络技术和编程语言总结
c语言对应的三级考试网络技术
网站服务器后台如何加防护密码
c语言软件开发步骤
c语言中网络技术知识点
服务器对权限提升的防护措施
怎么在阿里云租服务器
黑苹果能做web服务器吗
c语言和网络技术哪个好考
云服务器2核4G是什么性能
bim数据库太阳能
网络安全教育观后感50字
服务器的管理网口
互联网科技公司请假条
对软件开发生命周期的理解
数据库 msde2000
部队网络安全怎么看心得体会
网络安全法出台的重大意义
图书出版数据库
不常见软件开发模型
日本vpn服务器密码
什么是5g网络技术远程驾驶
山西计算机网络技术怎么专升本
sql数据库使用T sql
我的世界必玩的城市服务器
网警数据库销户是什么意思
天府银行软件开发工资
网络安全工程师有女的吗
虚拟搭建服务器机
工业网络安全演讲
北京推一把网络技术有限公司
勤哲excel服务器下载
山东程序软件开发价格
数据库原理及应用考试
对数据库进行保护
山西网络技术咨询销售
如何用服务器加速
软件开发公司会有连带责任
一个只有五个人的服务器
加强网络安全教育培训是