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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM