运维java项目的技巧 (war包、jar包、docker环境)
最近上線了修復log4j2漏洞的java項目。小結下系統更新操作過程。
一、tomcat下的war包的項目
cd /var/lib/tomcat9 root:/var/lib/tomcat9# ls webapps/ test test.war test.war-bak ROOTsystemctl 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.shcd /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.jarcd /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 imagesdocker run -itd -v /data/test:/etc/test \ -v /data/test:/tests \ -p 18080:18080 harbor.xxxx/arm64/tests:v1.0.2docker 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
總結
以上是生活随笔為你收集整理的运维java项目的技巧 (war包、jar包、docker环境)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 偷菜在美国
- 下一篇: 【axios源码】- 取消请求cance