IT_man 發表於 2016-11-3 16:51:30

nginx的log檔沒有被自動壓縮備份

本帖最後由 IT_man 於 2016-11-3 21:24 編輯

CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.
找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.
於是乎我從別台server複製過來,搞定.



以下說明日誌管理服務logrotate運作原理:


因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx
/var/log/nginx/*.log {
      daily
      missingok
      rotate 52
      compress
      delaycompress
      notifempty
      create 640 nginx adm
      sharedscripts
      postrotate
                [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
      endscript
}
Linux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.


配置說明:
daily:日誌文件每天進行滾動
missingok:如果找不到這個log檔案,就忽略過去
rotate:保留最近52次滾動的日誌
compress:透過gzip壓縮轉儲以後的日誌
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮
notifempty如果是空文件的話,不轉儲
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
sharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
postrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行

logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在:
/etc/cron.daily/logrotate

要測試寫好的設定檔可以用以下命令:
sudo logrotate -vf /etc/logrotate.d/your-conf-file



註:
參考:https://blog.toright.com/posts/4622/nginx-log-%E4%BB%A5%E6%97%A5%E6%9C%9F%E6%AD%B8%E6%AA%94.html

頁: [1]
查看完整版本: nginx的log檔沒有被自動壓縮備份