1. 程式人生 > >Nginx 日誌切割(Logrotate)

Nginx 日誌切割(Logrotate)

yum mic fas monthly missing syslog ptr col -s

Logrotate 配置文件

# ls /etc/logrotate.*
/etc/logrotate.conf

/etc/logrotate.d:
cups  dracut  fmdcn  httpd  iptraf  monit  psacct  puppet  sssd  syslog  yum  zabbix-agent

/etc/logrotate.conf 是 logrotate 的配置文件。

/etc/logrotate.d/ 是用於存儲其他配置文件的目錄。該目錄裏的所有文件都會被主動的讀入 /etc/logrotate.conf。

配置 Logrotate 只需要在 /etc/logrotate.d/ 新建一個文件,示例:

vim /etc/logrotate.d/fmdcn

/cache/cache/logs/fmdcn/*.log{  # /cache/cache/logs/fmdcn/*.log 為需要切割的日誌路徑
daily  # 日誌文件將按天輪詢,也可以是weekly, monthly
missingok  # 在日誌輪詢期間,任何錯誤將被忽略
dateext  # 定義日誌文件後綴是日期格式,error.log-20170928
compress  # 在輪循任務完成後,已輪循的歸檔將使用 gzip 進行壓縮
delaycompress  # 不將最近的歸檔壓縮,壓縮將在下一次輪詢周期進行
rotate 30  # 保存 30 個日誌文件,後續切割文件時,將時間最久的日誌文件刪除
notifempty  # 如果是空文件的話,不進行轉儲
create 640 root adm  # 以指定的權限和用戶屬性創建新的日誌文件
sharedscripts  # when telling nginx that logs have been rotated, only do it once rather than once for each file group 
postrotate   # postrotate/endscript 在所有其它指令完成後,postrotate和endscript裏面指定的命令將被執行
        [ ! -f /FastwebApp/fmdcn/nginx/logs/nginx.pid ] || kill -USR1 `cat /FastwebApp/fmdcn/nginx/logs/nginx.pid`
endscript
# postrotate 命令塊發送一個信號到 nginx,告訴它日誌已經被輪循,nginx 應該使用新的本件句柄
}

配置檢查:
logrotate -d /etc/logrotate.d/fmdcn

運行後將顯示 debug 信息

立即生效:

logrotate -f -v /etc/logrotate.d/fmdcn

Nginx 日誌切割(Logrotate)