參考:http://ixdba.blog.51cto.com/2895551/798913
Nginx沒有類似Apache的cronolog日誌分割處理的功能,但是,可以通過nginxNginx的信號控制功能利用腳本來實現日誌的自動切割。請看下面的一個實例。
Nginx對日誌進行處理的腳本:
#/bin/bash
savepath_log='/home/nginx/logs'
#定義舊日誌存放的位置
nglogs='/opt/nginx/logs'
#定義nginx日誌存放的位置
mkdir -p $savepath_log/$(date +%Y)/$(date +%m)
#以日期爲名稱新建文件夾
mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log
mv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log
#移動日誌到目的位置
kill -USR1 `cat /opt/nginx/logs/nginx.pid`
#cat 後面是nginxPID文件存放位置.
將這段腳本保存後加入到Linux的crontab守護進程,讓此腳本在每天凌晨0點執行,就可以實現日誌的每天分割功能了。
其中,變量savepath_log指定分割後的日誌存放的路徑,而變量nglogs指定Nginx日誌文件的存放路徑。最後一行,通過Nginx的信號“USR1”實現了日誌的自動切換功能。
而我的nginx version: nginx/1.2.6有自動分割日誌的功能.