Linux部署jar包命令大全

流程概要

rz

 # 使用rz或其它工具将jar包上传到服务器指定目录

ps

# 查看jar包进程,并记录进程id
ps -aux | grep demo-0.0.1-SNAPSHOT.jar

kill

# 结束之前项目的进程
kill 进程id

nohup

# 后台进程启动jar包,并打印日志
nohup java -jar demo-0.0.1-SNAPSHOT.jar > server.log 2>&1 &

tail

# 查看启动日志
tail -f server.log

命令

上传/下载

没有相关命令直接yum安装即可

yum install lrzsz

上传文件

rz
常用参数:
  -b # 以二进制方式,默认为文本方式。(Binary (tell it like it is) file transfer override.)

  -e # 对所有控制字符转义。(Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.)
  # 如果要保证上传的文件内容在服务器端保存之后与原始文件一致,最好同时设置这两个标志,如下所示方式使用:
  rz -be
	
	-y # 覆盖上传,rz上传如果存在同名文件会上传失败,此时可使用-y进行覆盖上传

下载

sz
# sz命令可以单下载一个文件,也可以多个文件同时下载
sz a.jpg b.jpg

查看进程

ps -aux | grep demo-0.0.1-SNAPSHOT.jar
	-aux # 显示所有包含其他使用者的行程 
	"|"  # 管道符,命令格式:命令A|命令B,即命令A的正确输出作为命令B的操作对象。例如: ps aux | grep "demo"  在 ps aux中的結果中查找demo
	grep # 查找内容包含指定的范本样式的文件

结束进程

kill 进程id # kill[参数][进程号]
  1. kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号

  2. kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。

  3. 应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。

说明:

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:

HUP 1 终端断线

INT 2 中断(同 Ctrl + C)

QUIT 3 退出(同 Ctrl + \)

TERM 15 终止

KILL 9 强制终止

CONT 18 继续(与STOP相反, fg/bg命令)

STOP 19 暂停(同 Ctrl + Z)

启动jar包

nohup java -jar demo-0.0.1-SNAPSHOT.jar > server.log 2>&1 &
	nohup # 放在命令的开头,表示不挂起(no hang up),关闭终端或者退出某个账号,进程也继续保持运行状态,一般配合&符号一起使用,如nohup command &
	java -jar demo-0.0.1-SNAPSHOT.jar # 启动jar包的命令
	>  # 重定向到一个文件,如果文件不存在则创建文件
		0 表示stdin标准输入
		1 表示stdout标准输出
		2 表示stderr标准错误
	2>&1 # 将错误重定向到标准输出上
	&  # 放在命令到结尾,表示后台运行,防止终端一直被某个进程占用,这样终端可以执行别的任务
	
	拓展:
	>>>都属于输bai出重定向,<属于输入重定向
	>会覆盖目标的原有bai内容。当文件存在时会先删除原文件,再重新创建文件,然后把内容写入该文件;否则直接创建文件。
	>>会在目标原有内容后追加内容。当文件存在时直接在文件末尾进行内容追加,不会删除原文件;否则直接创建文件。

查看日志

tail -f server.log
	tail #用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件
	命令格式: tail [参数] [文件]  
	-f # 循环读取
	-n # 显示行号
	tail -n +20 server.log # 从第二十行显示到文末
	tail -n 20 server.log # 查询二十行之后的所有日志

head
	head -n 20 server.log # 查询头二十行日志
	head -n -20 server.log # 查询日志文件除了最后二十行的其它所有日志

shell脚本

启动命令: sh xxx.sh

切记:编写shell脚本时,注意将文本的格式改为Unix

Windows和Linux对于回车换行符的表示是不同的。Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”。Windows文本文件中使用CR(回车\r)和 LF(换行\n)即CRLF,linux则是LF。记得转换。

shell 1

路径和参数都可自行修改

操作:

​ 将sh脚本和jar包放置同一级目录

作用:

​ 将查找需启动jar包是否存在进程,有则和平关闭,如被系统忽略,则强制结束进程。启动jar包并查看日志。

#!/usr/bin/env bash
#!/bin/sh
RESOURCE_NAME=report.jar

tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi

tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'App is running.'
else
    echo 'App is NOT running.'
fi

rm -f tpid
nohup java -jar ./$RESOURCE_NAME > service.log 2>&1 &
echo $! > tpid
echo Start Success!
tail -f ./service.log 

shell 2

路径和参数都可自行修改

操作:

​ 将sh脚本和jar包放入source_jar目录

作用:

​ 检查是否存在备份文件夹,不存在则创建,将jar包备份到备份文件夹,并将jar包移动到指定目录,结束之前的启动进程,到该目录启动jar包并查看日志。

JARFILE=report.jar
DIR=/usr/local/java/job
cur_dateTime="`date +%Y-%m-%d,%H:%m:%s`"  


echo "##################### backup ##############################"
if [ ! -d $DIR/backup ];then
	mkdir -p $DIR/backup
fi

if [ -f "$DIR/$JARFILE" ]
then
	mv $DIR/$JARFILE $DIR/backup/$JARFILE$cur_dateTime
fi

if [ -f "$DIR/source_jar/$JARFILE" ]
then
	mv $DIR/source_jar/$JARFILE $DIR/
fi

echo "##################### back end ##############################"


echo "##################### stop old ##############################"
pid=`ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi


#debug_pid=`ps -ef | grep 9790 | grep -v grep | awk '{print $2}'`
#if [ -n "$debug_pid" ]
#then
#   kill -9 $debug_pid
#fi

echo "##################### stop old end ##############################"



echo "##################### start ############################## "
chmod +x $DIR/$JARFILE
cd $DIR
pwd
#nohup java -jar $JARFILE  >>server.log &

#nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9790  $JARFILE  >>server.log &
nohup java -jar  $JARFILE  >>server.log &

tail -f server.log

sleep 1
echo "##################### start end ##############################"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值