基于TOMCAT 的项目 自更新自重启

目的:更新war包以更新项目,并重启TOMCAT

1.接收新war包

	略过,普通的上传文件,复制到tomcat/webapps 下
	需要注意的是:不要立即修改老的war包,否则会导致项目文件被TOMCAT立即修改
	先把新的war包 改个名字 如 myAPP.war 改为 myApp.new 再复制到/webapps 下

2.更新准备

2.1 编写更新脚本

在这里插入图片描述
脚本主要操作:
1.先进入webapps目录
2.检查老war包是否存在,检查新war包是否存在(改为了XX.new)
3.如果上面2个都存在,则执行backup操作: 把老war包(XX.war)改为(XX.bak),再将新war包(XX.new)改为项目名(XX.war)
4.执行重启TOMCAT操作,图中红框是因为把TOMCAT作为service启动的特殊重启方法.(个人可以:先调用tomcat目录下/bin/shutdow.sh 再sleep 3S 再调用/bin/startup.sh )

将该脚本放到资源目录下

2.2将更新需要的文件复制到任意位置(这里全部放到webapps下)

包括:1:更新脚本
2.接收输出的文件upgrade.out文件
在这里插入图片描述
图中2个框是检查老的脚本和升级日志是否存在,如果存在就删除,再将新的复制到指定位置
执行这个操作使用的是 Runtime.getRuntime();
注意这个runtime 有2个输出流需要接收,自行百度,由于这个runtime在这里用完服务器就重启,所以不存在buffer溢出的问题,所以没有对输出流进行接收.
执行完睡一定时间留着备用(或者执行其他结束准备操作)

2.3 运行更新脚本

在这里插入图片描述
这里使用的SSH进行的操作,runtime执行使用始终有问题所以没用
其中nohup 和结尾的 & 用来忽略SSH终端退出导致的终止信号
“>>” 用来将日志输出到upgradeLog.out文件中

附:基于 ethz.ssh2 写的SSHAgent

在这里插入图片描述
注意: 一个SSH connection推荐维护10个Session 多线程需要注意(一般用不到) 这里只有一个connection
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
特别注意:Linux服务器会有2个输出流:标准输出,和错误输出流. (相对java程序是输入流)如果有持续的输出会导致阻塞
建议用2个线程分别接收这个2个输出流,防止阻塞,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值