天天看點

logrotate切割nginx日志

<a href="#1-%e9%93%be%e6%8e%a5">連結</a>

<a href="#2-%e9%85%8d%e7%bd%ae">配置</a>

<a href="#3-%e6%b5%8b%e8%af%95">測試</a>

<a href="#4-%e6%b7%bb%e5%8a%a0%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1">添加定時任務</a>

使用系統自帶的logrorate來切個nginx日志,位于/usr/sbin/logrotate

假設伺服器上有兩個網站的nginx配置分别如下:

去除其它配置資訊,隻保留了日志相關

a網站

b網站

在/etc/logrotate.d/下建立一個配置檔案 nginx, 内容如下:

需要注意的是你們的nginx.pid位置,不一定是在/usr/local/nginx/nginx.pid

配置說明

配置

說明

daily

指定轉儲周期為每天

weekly

指定轉儲周期為每周

monthly

指定轉儲周期為每月

rotate

轉儲次數,超過将會删除最老的那一個

missingok

忽略錯誤,如“日志檔案無法找到”的錯誤提示

dateext

切換後的日志檔案會附加上一個短橫線和yyyymmdd格式的日期

compress

通過gzip 壓縮轉儲舊的日志

delaycompress

目前轉儲的日志檔案到下一次轉儲時才壓縮

notifempty

如果日志檔案為空,不執行切割

sharedscripts

隻為整個日志組運作一次的腳本

prerotate/endscript

在轉儲以前需要執行的指令可以放入這個對,這兩個關鍵字必須單獨成行

postrotate/endscript

在轉儲以後需要執行的指令可以放入這個對,這兩個關鍵字必須單獨成行

執行以下指令進行測試

然後到相應的日志目錄下檢視 (/data/logs/a.com/, /data/logs/b.com/)

應該會有類似以下的檔案:

access.log

access.log-20170626

error.log

error.log-20170626

每日0點執行腳本

在終端運作 crontab -e

插入以下語句

繼續閱讀