java分割后台日志

1.遇到的问题
在应用服务器以nohup的方式启动应用时指定了后台日志,日积月累,日志文件过大,导致服务器磁盘空间不足。命令如下:

nohup java -jar > /home/amquser/app/dev/text-persist-log.txt 2>&1 &
2.解决方法 
split切割输出的后台日志,脚本如下:

this_path=$(cd `dirname $0`;pwd)

cd $this_path
echo $this_path


# -b 后是切割日志的大小,默认单位是b,还可以是k, m, g,
# -d -a 4 表示文件以4位数字结尾,从0000开始
#/home/amquser/app/dev/text-persist-log.txt 需要切割的对象文件
#/home/amquser/log/text-log- 切割后文件的存储位置
split -b 50m -d -a 4 /home/amquser/app/dev/text-persist-log.txt /home/amquser/log/text-log-

#分割日志文件后清空原文件
cat /dev/null > /home/amquser/app/dev/text-persist-log.txt
执行结果:

1)分割后的新文件顺利生成

 

2) 分割后的原文件大小没变

分割后原文件大小虽然显示为0,但是当有新日志写入时,大小瞬间就会恢复到没有分割前的大小。

解决方法,改变日志输出时的追加方式:

nohup java -jar >> /home/amquser/app/dev/text-persist-log.txt 2>&1 &
3.注意事项 
1)分割好的新日志要及时处理,以免下次运行分割脚本后覆盖

posted @ 2021-05-21 11:29  爱你爱自己  阅读(852)  评论(0编辑  收藏  举报