Linux日誌文件總管——logrotate

日誌文件包含了關於系統中發生的事件的有用信息,在排障過程中或者系統性能分析時經常被用到。對於忙碌的服務器,日誌文件大小會增長極快,服務器會很快消耗磁盤空間,這成了個問題。除此之外,處理一個單個的龐大日誌文件也常常是件十分棘手的事。

假如有一個日誌文件:
/var/log/log-file
我們對此日誌文件進行切割
vim /etc/logrotate.d/log-file

/var/log/log-file {
    monthly
    size=50M
    rotate 5
    compress
    delaycompress
    missingok
    notifempty
    create 644 root root
    dateext
    postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}
  • monthly: 日誌文件將按月輪循。其它可用值爲‘daily’,‘weekly’或者‘yearly’。
  • size=50M: 日誌文件大於50M進行切割
  • rotate 5: 一次將存儲5個歸檔日誌。對於第六個歸檔,時間最久的歸檔將被刪除。
  • compress: 在輪循任務完成後,已輪循的歸檔將使用gzip進行壓縮。
  • delaycompress: 總是與compress選項一起用,delaycompress選項指示* logrotate不要將最近的歸檔壓縮,壓縮將在下一次輪循週期進行。這在你或任何軟件仍然需要讀取最新歸檔時很有用。
  • missingok: 在日誌輪循期間,任何錯誤將被忽略,例如“文件無法找到”之類的錯誤。
  • notifempty: 如果日誌文件爲空,輪循不會進行。
  • create 644 root root: 以指定的權限創建全新的日誌文件,同時logrotate也會重命名原始日誌文件。
  • dateext: 以日期重命名備份文件
  • postrotate/endscript: 在所有其它指令完成後,postrotate和endscript裏面指定的命令將被執行。在這種情況下,rsyslogd 進程將立即再次讀取其配置並繼續運行。

logrotate可以在任何時候從命令行手動調用。

要調用爲/etc/lograte.d/下配置的所有日誌調用logrotate:

#logrotate /etc/logrotate.conf
要爲某個特定的配置調用logrotate:

#logrotate /etc/logrotate.d/log-file

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章