如何在shell中使用expect命令进行远程执行命令脚本
发表于:2022-08-20 作者:安全数据网编辑
编辑最后更新 2022年08月20日,如何在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是什么性能
数据库 三级部门表设计
互联网金融科技股票龙头
强安软件开发者
量子神经网络技术
电脑网络安全密匙不正确怎么修改
高校网络安全存在问题
数据库 储存性别
云服务器和vps主机
数据库图标 16 16
戴尔服务器管理ip默认6
opc ua 服务器默认端口
广州市迷迷网络技术有限公司
怎么看数据库的默认字符集
网络安全售后简介
网络安全内部防范问题
网络安全生活存在的不安全
什么情况下使用监控矩阵服务器
如何查看数据库触发是否启动
高中生网络安全公约
武术数据库
电脑上的网站谁是服务器端
深圳市一嘉盛网络技术有限公司
信誉好的直销软件开发
1366主板双路服务器怎么安装
武川县国家网络安全宣传周
域名服务器是什么
网络安全向导共享打印机
编程服务器哪个平台好
互联网科技公司市值
不用sql操作数据库