前言
毕业一年多了,作为一名后端Java工程师。一直想做个将现在工作上常用技术做个总结。将近年底,又谈了个女朋友,动力满满。先从Linux开始吧!由外向里,由潜入深。
jar包部署
查询Java进程
要部署jar包,得先找到jar包位置,然后关闭线程,上传jar包,nohup启动。
ps -f -C java
这是最常用的查询java线程的指令,如果因界面问题显示不完全,使用下面的指令。
ps -ef | grep java
查询文件位置/文件搜索
find / -name xx.jar
关闭线程
// 普通关闭
kill 28987
// 强制关闭
kill -9 28987
运行jar包
java -jar xx.jar
缺陷:退出就关闭
挂起运行
nohup java -jar xx.jar & [参数]
日志查看
tail -f nohap.out
修改jar包配置文件
// 打开文件
vim xxx.jar
// 查找文件 '/'表示查找
/aa.yml
// i 进入编辑 Esc + : + q + w 关闭保存退出
热部署
当我们只修改了某个java文件,而线上项目不方便停运的时候,热部署是我们处理这类问题的一个方法。
反编译
下载arthas
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
运行arthas
java -jar arthas-boot.jar
反编译操作
jad --source-only com.framework.modules.api.controller.WebInterfaceApi > /tmp/WebInterfaceApi.java
获取classLoaderHash
sc -d *WebInterfaceApi | grep classLoaderHash
使用classLoaderHash进行编译
mc -c 439f5b3d /tmp/WebInterfaceApi.java -d /tmp
热加载
redefine /tmp/com/example/demo/arthas/user/WebInterfaceApi.class
日志查看与下载
tail -f nohup.out
// 查看文件大小
du -sh nohup.out
- 下载
- 清空日志
nohup.out tail -f -n 500 nohup.out -> text1.txt
|