使用logrotate配置日誌輪詢

oOo右右發表於2019-01-05

logrotate配置

在/etc/logrotate.d/目錄下建立一個配置檔案例如nginx,檔案內容如下:
nginx 示例如下:

/usr/local/nginx/logs/*.log {

        rotate 5             # 一次將儲存5個歸檔日誌。對於第六個歸檔,時間最久的歸檔將被刪除。

        notifempty        #如果日誌檔案為空,輪循不會進行。

        daily                 #日誌檔案將按日輪循。其它可用值為‘daily’,‘weekly’或者‘yearly’

       missingok          #在日誌輪循期間,任何錯誤將被忽略,例如“檔案無法找到”之類的錯誤。

        compress         #在輪循任務完成後,已輪循的歸檔將使用gzip進行壓縮。

        sharedscripts   #表示多個日誌檔案之間 只執行一次logrotate

        postrotate        #在所有其它指令完成後,postrotate和endscript裡面指定的命令將被執行。在這種情況下,rsyslogd 程式將立即再次讀取其配置並繼續執行。

        /usr/local/nginx/sbin/nginx -s reopen

        endscript

}

測試日誌輪詢配置:

先啟動nginx;

立即截斷日誌:

# logrotate --force /etc/logrotate.d/nginx     ==》logrotate  -f 是強制執行一次

[root@iZbp17avth0ympurvz5xliZ sbin]# logrotate --force /etc/logrotate.d/nginx

[root@iZbp17avth0ympurvz5xliZ sbin]# ls /usr/local/nginx/logs/

access.log error.log error.log.1.gz nginx.pid

 

注意:

logrotate是會自動執行的,時間是4點的時候,也可以修改配置檔案來修改時間,所以不用再設定crontab檔案。

更改logrotate配置後使用 /usr/sbin/logrotate /etc/logrotate.conf  使logrotate生效

===========================================

近日有臺機器log切割一直沒有生效,使用 /usr/sbin/logrotate /etc/logrotate.conf 手動啟動logrotate發現nginxlog路徑不正確,是的nginx log沒有切割,磁碟經常報警。

 

 

 

相關文章