1、安裝
logrotate是Linux系統自帶,無需安裝
2、配置
進入【/etc/logrotate.d/nginx】文件修改配置
# 需要備份的日志路勁,一個或多個都可以
/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
}
3、測試
logrotate -vf /etc/logrotate.d/nginx
執行以上命令,是否得到自己預期效果
4、執行
0 0 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx
將上面這段添加到crontab里面,讓他每天定時執行
5、參數含義
配置 | 說明 |
---|---|
daily | 指定轉儲周期為每天 |
weekly | 指定轉儲周期為每周 |
monthly | 指定轉儲周期為每月 |
rotate | 轉儲次數,超過將會刪除最老的那一個 |
missingok | 忽略錯誤,如“日志文件無法找到”的錯誤提示 |
dateext | 切換后的日志文件會附加上一個短橫線和YYYYMMDD格式的日期 |
compress | 通過gzip 壓縮轉儲舊的日志 |
delaycompress | 當前轉儲的日志文件到下一次轉儲時才壓縮 |
notifempty | 如果日志文件為空,不執行切割 |
sharedscripts | 只為整個日志組運行一次的腳本 |
prerotate/endscript | 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 |
postrotate/endscript | 在轉儲以后需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 |