【学习】使用nohup运行jar并按日期切割日志

启动程序

将日志输出至nohup.out

nohup java -jar xxx.jar > nohup.out 2>&1 &

创建日志切割脚本

vi split.sh

编辑内容

#!/bin/bash
#author: zs
#create date: 2022-06-14
#description: nohup.out日志分割
this_path=$(cd `dirname $0`;pwd)#根据脚本所在路径
current_dte=`date -d "-1 day" "+%Y%m%d"`#列出时间
cd $this_path
echo $this_path
echo $current_date
do_split(){
	[ ! -d logs ] && mkdir -p logs
	split -b 10m -d -a 4 ./nohup.out ./logs/nohupsDirection/nohup-${current_date} #切分10兆每块至logs文件中(自定义),格式为:nohup-××××××××
	if [ $? -eq 0 ];
	then 
		echo "split is finished!"
	else 
		echo "split is failed!"
		exit 1 #退出shell,失败
	fi
}
do_del_log(){
	find ./logs -type f -ctime +200 | xargs rm -rf #清理200天前创建的日志
	cat /dev/null > nohup.out #清空当前目录的nohup.out文件
}
if do_split;
then 
	do_del_log
	echo "nohup is split success!"
else
	echo "nohup is split failure!"
	exit 2 #退出shell,用法不当
fi
# crontab -e 添加定时任务,每天1点执行
#0 1 * * */1 /××××/split.sh &>/dev/null

授权

# 在split.sh所在目录下
chmod u+x *.sh

创建定时任务

0 1 * * */1 /Files_upload/xck/split.sh &>/dev/null

结束9090端口运行的jar包

# 查看9090端口进程
netstat -lnp|grep 9090

tcp6       0      0 :::9090                 :::*                    LISTEN      13795/java
# 结束对应进程
kill -9 13795

其他nohup切割方式

按大小

# !/bin/sh
# 拷贝日志文件到 昨天的log中
split -b 100m -d -a 4 /usr/local/release/nohup.out /usr/local/release/logfile_`date -d yesterday +%Y%m%d`.log  
# 清空nohup.out 日志
cat /dev/null > /usr/local/release/nohup.out

按日期

# !/bin/sh
# 拷贝日志文件到 昨天的log中
cp /usr/local/release/nohup.out /usr/local/release/logfile_`date -d yesterday +%Y%m%d`.log  
# 清空nohup.out 日志
cat /dev/null > /usr/local/release/nohup.out
posted @ 2022-06-14 11:57  小拳头呀  阅读(1543)  评论(0编辑  收藏  举报