shell脚本实现自动输入账号密码连接运服务器并执行其他命令的方法

一、背景:

测试中经常需求连接到测试服务器查看日志,通常步骤是 :

1.         打开xshell

2.         选择对应服务器

3.         登录

4.         切换到特定目录

5.         执行catalina.out



二、想法:

因为每日测试都需要,并且是简单的操作,希望可以用脚本实现以上功能,一键执行。


Expect是一种TCL扩展性的语言,主要用于完成系统交互方面的功能,比如SSH、FTP等,这些程序都需要手工与它们进行互动,而使用Expect就可以模拟人手工互动的过程,使用一种自动的方式控制。


expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。expect是不断发展的,随着时间的流逝,其功能越来越强大,已经成为系统管理员的的一个强大助手。Expect中,有三个重要的主命令,分别是spawn、expect、exp_send,这三个命令几乎存在于所有Expect脚本中,除了这些之外,还有很多Expect所特有的参数、变量,它们也作用与Expect的方方面面。



三、实施:

expect需要Tcl编程语言的支持,要在系统上运行expect必须首先安装Tcl

1、       环境配置

参考:https://blog.csdn.net/jw_xuezhixia/article/details/54144116


2、        脚本准备


说明:

spawn:spawn命令是Expect的初始命令,它用于启动一个进程,之后所有expect操作都在这个进程中进行,如果没有spawn语句,整个expect就无法再进行下去。


set timeout:后面所有的expect命令的等待响应的超时时间为对应参数。


expect:expect命令用于等候一个相匹配的输出,一旦匹配就执行后面的动作。


send:一般是expect中的动作命令,向进程发送输入内容。


interact:运行表示将控制权交给用户,与spawn生成的进程进行交互。


四、执行结果:

执行shell脚本, 自动执行ssh连接服务器ip,并输入用户密码,登录成功。

zidogn
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会...
    twintwin阅读 3,474评论 0 0
  • 近日,人民银行向各银行机构、支付机构及清算组织下发了《中国人民银行关于规范支付创新业务的通知》(银发【2017】2...
    hh与ww阅读 2,967评论 0 0
  • 1、练字一小时。 2、喜马拉雅、得到泛听3小时。 3、跑步、做操半小时。 4、今日以照顾妈妈为主,主要的时间都奉献...
    了茶阅读 1,873评论 0 0
  • 如果说 命运将从新被撰改 我还会义无反顾的选择走老路 现在的生活平静如水 不好不坏 或许这就是所谓的命 曾 一度的...
    拣书悦读阅读 3,649评论 1 9
  • 樱花开放是一个多么美丽,多么浪漫的季节。每年都期待樱花的开放。似凡间的一抹清幽,空灵,使人徜徉其中,无法自拔。 每...
    後青春的詩阅读 3,616评论 2 6

友情链接更多精彩内容