logrotate是Linux系統自帶,無需安裝nginx
進入【/etc/logrotate.d/nginx】文件修改配置post
# 須要備份的日誌路勁,一個或多個均可以 /data/logs/nginx1/*.log /data/logs/nginx2/*.log { daily rotate 5 missingok dateext compress notifempty sharedscripts postrotate [ -e /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript }
logrotate -vf /etc/logrotate.d/nginx
執行以上命令,是否獲得本身預期效果測試
0 0 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx
將上面這段添加到crontab裏面,讓他天天定時執行日誌
配置 | 說明 |
---|---|
daily | 指定轉儲週期爲天天 |
weekly | 指定轉儲週期爲每週 |
monthly | 指定轉儲週期爲每個月 |
rotate | 轉儲次數,超過將會刪除最老的那一個 |
missingok | 忽略錯誤,如「日誌文件沒法找到」的錯誤提示 |
dateext | 切換後的日誌文件會附加上一個短橫線和YYYYMMDD格式的日期 |
compress | 經過gzip 壓縮轉儲舊的日誌 |
delaycompress | 當前轉儲的日誌文件到下一次轉儲時才壓縮 |
notifempty | 若是日誌文件爲空,不執行切割 |
sharedscripts | 只爲整個日誌組運行一次的腳本 |
prerotate/endscript | 在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 |
postrotate/endscript | 在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 |