一、问题背景:
实际开发过程中,有多套环境,每次修改代码时,需要更新多套环境,很费时费力,之前是打好包之后挨个服务器去传,然后打开xshell,连接这几台服务器,然后点xshell的选项卡→排列→瓷砖排列,再点工具→发送键输入到所有会话,然后再cd到目录中,执行我们启动jar包的脚本可以简单理解为java -jar
,整个流程非常麻烦。
二、问题解决流程:
GPT+必应
GPT提供batchUpdate.sh
的绝大部分代码。(在linux写脚本,脚本可以同时在几个不同的服务器上的/a/b目录下上传c.jar并且运行java -jar c.jar,servers内的服务器有多个,可以在运行脚本的时候指定,jar包名称需要参数指定,没有设置无密码登录,需要把密码写在脚本里怎么写)
必应查一些需要的安装包以及如何安装。
参考:
https://blog.csdn.net/wangtaoking1/article/details/78268574
包下载:
https://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz/download
https://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
注意事项:
1、如果这些服务器启动jar包的用户及用户密码不一样,那无法用我这个脚本,不用往下看了。
2、第一次执行 batchUpdate.sh
脚本时,会输入两次yes,一次用户密码,来安装好像是签名,公钥之类的东西,每个服务器第一次ssh都要安装一下。之后再执行就不用了,就比较丝滑了。
三、准备工作。
# 先检查服务器有没有安装过expect,安装过就别在这浪费时间了。
# 友情提示,如果以前安装过,但是没指定路径--prefix=,那就只能用root用户执行脚本了,因为他好像是默认往/usr里面安装。
whereis expect
#