nohup 输出日志分割

nohup java -jar ./xxxxx.jar &

nohup java -jar ./xxxxx.jar >> ./logs/nohup.out 2>&1 &  输出到指定目录、指定文件

(第一条指令)linux下后台运行自己部署的jar包项目,日志会输出到当前目录下的nohup.out文件中

但是nohup.out日志文件会越来越大,特别是这次客户端无限重连,导致日志文件一天暴涨几十个G,但是又不能删除,只能重启服务的间隙删除日志文件。

这次用Linux自带的定时任务执行分割日志(nohup.out)的sh文件

vim split_logs.sh    新建/修改文件,输入以下内容



​​​​​​​# 获取前一天日期
current_date=`date -d "-1 day" "+%Y%m%d"`

# 第一种方式:这里使用split命令,将nouhup文件按指定大小切分(365535000 大概60多M吧,可以自定义大小 ),并分成指定格式(-d -a 4以4位数字形式为后缀以从0000开始,具体可以百度split命令用法),最终输出格式为log_20220710_0001

split -b  365535000 -d -a 4 /usr/local/smart_store/nohup.out  /usr/local/smart_store/split_log/log_${current_date}_

# 第二种方式   复制文件的方式,以每天的日志大小切分

# cp /usr/local/smart_store/nohup.out /usr/local/smart_store/split_log/${current_date}.log

# 最后清空nohup.out 原文件的内容

cat /dev/null > /usr/local/smart_store/nohup.out

# 拓展  清除split_log目录下15天前旧日志文件

find /usr/local/smart_store/split_log/ -mtime +15 -name 'log_*' -exec rm -rf {} \;

wq保存退出

nohup 输出日志分割_第1张图片

 

nohup 输出日志分割_第2张图片

nohup 输出日志分割_第3张图片

 赋予文件执行权限

chmod 777 split_logs.sh

nohup 输出日志分割_第4张图片

 开启定时任务,执行split_logs.sh

vim /etc/crontab

nohup 输出日志分割_第5张图片

 wq保存退出,第二天查看前一天文件有没生成

我这边脚本已经执行了,说明定时任务已生效

但是别人好像也有失效的情况,使用第二种方式

crontab -l

 说明没有生效,但是我这边其实也是这样的输出。。。

crontab -e

nohup 输出日志分割_第6张图片

 将前面的定时任务的指令,输入进入,wq保存退出

crontab -l

 

 

你可能感兴趣的:(linux,linux,java,运维)