SpringBoot 自动化项目部署

1、查看当前服务器下面该项目是否在运行。

ps aux | grep "0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}'

该命令理解 “ps aux | grep "0.0.1-SNAPSHOT.jar"”,该部分主要查找已经启动的服务中包含“0.0.1-SNAPSHOT.jar”。

“grep -v grep”的意思排除grep这条记录,“awk”用来打印该服务的端口。

➜  ~ ps aux | grep "0.0.1-SNAPSHOT.jar" | grep -v grep
zacky             1436   0.0  4.6 10233240 772904 s000  SN    9:53AM   0:43.92 /usr/bin/java -jar api-service-0.0.1-SNAPSHOT.jar
➜  ~ ps aux | grep "0.0.1-SNAPSHOT.jar"
zacky             1436   0.0  4.6 10233240 772904 s000  SN    9:53AM   0:43.94 /usr/bin/java -jar api-service-0.0.1-SNAPSHOT.jar
zacky             1649   0.0  0.0  4276968    836 s003  S+   10:07AM   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn 0.0.1-SNAPSHOT.jar
➜  ~ ps aux | grep "0.0.1-SNAPSHOT.jar" | grep -v grep
zacky             1436   0.0  4.6 10233240 772904 s000  SN    9:53AM   0:43.94 /usr/bin/java -jar api-service-0.0.1-SNAPSHOT.jar
➜  ~ ps aux | grep "0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}'
1436

2.进入项目根目录,执行运行项目命令。

nohup java -jar api-service-0.0.1-SNAPSHOT.jar >api-log.log 2>&1 &

nohup:不挂断地运行命令,退出帐户之后继续运行相应的进程。

>api-log.log:是nohup把command的输出重定向到当前目录的指定的“api-log.log”文件中,即输出内容不打印到屏幕上,而是输出到“api-log.log”文件中。不指定文件名会在当前目录创建nohup.out,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。

2>&1:2就是标准错误,1是标准输出,该命令相当于把标准错误重定向到标准输出么。这里&相当于标准错误等效于标准输出,即把标准错误和标准输出同时输出到指定的“日志文件名.log”文件中。

java -jar 自己的springboot项目.jar:执行springboot的项目,如果单单只执行该命令,linux只会短暂的运行该项目,当退出控制台后会自动关闭该项目。

最后的&:让改作业在后台运行。

3.tail 命令查看实时日志并筛选。

➜  target git:(develop) ✗ tail -f api-log.log|grep 689abb9912585a05566f36b3eb941cdb

689abb9912585a05566f36b3eb941cdb:0.9375
689abb9912585a05566f36b3eb941cdb:1.0

猜你喜欢

转载自www.cnblogs.com/zacky31/p/9298245.html