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

2020-04-13  本文已影响0人  Addison_M

一、背景:

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

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
上一篇下一篇

猜你喜欢

热点阅读