<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
插入以下語句