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)分割好的新日志要及時處理,以免下次運行分割腳本后覆蓋
