运维java项目的技巧 (war包、jar包、docker环境)
https://blog.csdn.net/csdnzouqi/article/details/90169728 mac使用vim命令修改jar包配置文件内容https://www.cnblogs.com/tonggc1668/p/7519470.html Linux修改war包中文件https://www.cnblogs.com/lilijun/p/7428376.htmlLinux修改war包
最近上线了修复log4j2漏洞的java项目。小结下系统更新操作过程。
一、tomcat下的war包的项目
cd /var/lib/tomcat9
root:/var/lib/tomcat9# ls webapps/
test test.war test.war-bak ROOT
systemctl stop tomcat9
备份test.war
上传新的test.war
systemctl start tomcat9
查看日志如catalina.log 。 做巡检项,访问系统页面。
1.1 修改war包里面的配置文件的操作
一、 在windows使用360压缩打开war包 修改里面的配置文件。
二、使用 vim xx.war 查看修改里面的配置文件 (如 bootstrap.properties 和application-develop.properties )
参考:
https://blog.csdn.net/csdnzouqi/article/details/90169728 mac使用vim命令修改jar包配置文件内容
https://www.cnblogs.com/tonggc1668/p/7519470.html Linux修改war包中文件
https://www.cnblogs.com/lilijun/p/7428376.html Linux修改war包中文件
https://www.orchome.com/703 linux下使用vim修改jar包、war包、zip包内文件内容
Java jar命令 常见用法 https://www.cnblogs.com/dtest/p/4180616.html
二、启动jar包的项目
cd /data/test
ls
application-test.yml application.yml test-1.0.1.jar log nohup.out restart.sh
cd /data/test
杀掉test.jar对应的PID (lsof -i:8080 、 pgrep -f test-1.0.1.jar 、jps -l )
备份旧test-1.0.1.jar
上传新的test-1.0.2.jar
nohup java -jar test-1.0.2.jar >nohup.out 2>&1 & 启动。
2.1 关于将配置文件yml放在外面的说法
application-test.yml application.yml test-1.0.1.jar 一起放在当前目录,java -jar启动的时候,会优先加载外面的yml文件,而不是test-1.0.1.jar里面的yml文件。 (算是个优先级的说法把)(这样也方便修改配置文件,不需要 vim test-1.0.1.jar里面的配置文件)
参考:https://blog.csdn.net/weixin_43671737/article/details/119999766
《启动后台 jar 包时,使用指定的外部application.yml》
https://blog.csdn.net/z_ssyy/article/details/105347680
《Springboot命令行配置–spring.config.location配置文件的优先级》
三、使用docker启动的java项目
cd /data/test
ls
application-prod.yml application.yaml customsettings.json log reports stats system test-1.0.0.jar
cd /data/trlh/hi-repository
备份旧的test-1.0.0.jar 和 stats ,reports, system 三个文件夹
docker stop “tests的dockerID”
上传新的包test-1.0.1.jar
docker start “tests的dockerID”
3.1 docker项目说明
最初搭建是:加载docker镜像 ,并启动。 (dockerfile略)
docker load -i tests.tar
docker images
docker run -itd -v /data/test:/etc/test \
-v /data/test:/tests \
-p 18080:18080 harbor.xxxx/arm64/tests:v1.0.2
docker ps
四、反思与应对
在此过程中可能会遇到:
0、部署之前一定要备份、做系统快照。给自己留个后路、方便回退。
1、在测试环境能正常部署,但到生产环境启动jar包后报错。此时查看报错日志,进行分析。
(可能是配置文件没配对、研发打错包了要更改数据库驱动)
耐心、细心检查配置项。 改完配置后,grep 筛选检查。
2、可参考测试环境与生产环境的配置或者jar包是否有差别,两者之间的配置文件是否有差异项。
因为要部署两台相同的服务(test-web1 ,test-web2),其中一台已经正常启动了,那就scp将好的web1的配置文件复制到web2处。
3、注意查看tar.gz包解压后的属主属组,文件权限。对比原本文件夹的属主属组,如有不同则chown ,chmod处理。
4、每当更新系统包后,要及时同步到本地PC电脑。避免上传错包。(更新包以测试提供的包为准)
5、拟定上线部署系统的顺序。人员安排与分工。提前将包放到服务器。
其他 使用vimgrep 搜索查看jar包中的log4j2字样。
现在的疑惑点就是 (Scan为文件夹)
vim Scan 和 vim Scan.jar , 使用 vimgrep是不同的效果
:vimgrep /log4/ **/.
:vimgrep /log4/ **/*.MF
更多推荐
所有评论(0)