logrotate nginx日誌切割

1.安裝

centos:
yum -y install logrotate
ubuntu:
apt-get install -y logrotate

2. 配置文件

/etc/logrotate.conf
/etc/logrotate.d/

3. 配置nginx日誌切割

/etc/logrotate.d/nginx
/opt/buka/product_v3/nginx/logs/*log {
    daily
    rotate 2
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/kill -USR1 `cat /opt/buka/product_v3/nginx/logs/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

4. 參數詳解

compress                        經過gzip壓縮轉儲之後的日誌
nocompress                      不壓縮
copytruncate                    用於還在打開中的日誌文件,把當前日誌備份並截斷
nocopytruncate                  備份日誌文件可是不截斷
create mode owner group         轉儲文件,使用指定的文件模式建立新的日誌文件
nocreate                        不創建新的日誌文件
delaycompress 和 compress       一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮
nodelaycompress                 覆蓋 delaycompress 選項,轉儲同時壓縮。
errors address                  專儲時的錯誤信息發送到指定的Email 地址
ifempty                         即便是空文件也轉儲,這個是 logrotate 的缺省選項。
notifempty                      若是是空文件的話,不轉儲
mail address                    把轉儲的日誌文件發送到指定的E-mail 地址
nomail                          轉儲時不發送日誌文件
olddir directory                轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統
noolddir                        轉儲後的日誌文件和當前日誌文件放在同一個目錄下
prerotate/endscript             在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript            在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
daily                           指定轉儲週期爲天天
weekly                          指定轉儲週期爲每週
monthly                         指定轉儲週期爲每個月
dateext                         在文件末尾添加當前日期
rotate count                    指定日誌文件刪除以前轉儲的次數,0 指沒有備份,5 指保留5 個備份
tabootext [+] list 讓logrotate  不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~
size size                       當日志文件到達指定的大小時才轉儲,bytes(缺省)及KB(sizek)或MB(sizem)

5. 定時任務

00 00 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx
相關文章
相關標籤/搜索