nohup 输出日志分割

博客讲述了如何在Linux环境下,使用nohup命令后台运行Java jar包项目,并解决因日志文件过大而采取的分割日志策略。作者创建了一个名为'split_logs.sh'的脚本,通过split命令或复制文件的方式按指定大小分割nohup.out日志,并清空原文件。此外,还添加了定时任务以每天执行该脚本,确保日志文件不会过度增长。同时,脚本中包含了清除15天前旧日志的命令。
摘要由CSDN通过智能技术生成
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 {} \;

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

find /mnt/usr/local/box/box_logs/ -maxdepth 4  -mtime +15 -name '*.log' -exec rm -rf {} \;

wq保存退出

 赋予文件执行权限

chmod 777 split_logs.sh

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

vim /etc/crontab

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

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

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

crontab -l

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

crontab -e

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

crontab -l

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值