Nginx-日誌分割配置實例

參考:http://ixdba.blog.51cto.com/2895551/798913


Nginx沒有類似Apache的cronolog日誌分割處理的功能,但是,可以通過nginxNginx的信號控制功能利用腳本來實現日誌的自動切割。請看下面的一個實例。
Nginx對日誌進行處理的腳本:

  1. #/bin/bash

  2. savepath_log='/home/nginx/logs'

  3. #定義舊日誌存放的位置

  4. nglogs='/opt/nginx/logs'

  5. #定義nginx日誌存放的位置


  6. mkdir -p $savepath_log/$(date +%Y)/$(date +%m)

  7. #以日期爲名稱新建文件夾

  8. mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log

  9. mv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log

  10. #移動日誌到目的位置

  11. kill -USR1 `cat /opt/nginx/logs/nginx.pid`

  12. #cat 後面是nginxPID文件存放位置.

將這段腳本保存後加入到Linux的crontab守護進程,讓此腳本在每天凌晨0點執行,就可以實現日誌的每天分割功能了。
其中,變量savepath_log指定分割後的日誌存放的路徑,而變量nglogs指定Nginx日誌文件的存放路徑。最後一行,通過Nginx的信號“USR1”實現了日誌的自動切換功能。


而我的nginx version: nginx/1.2.6有自動分割日誌的功能.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章