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)分割好的新日志要及时处理,以免下次运行分割脚本后覆盖