歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux中利用logrotate來對log文件進行循環管理

Linux中利用logrotate來對log文件進行循環管理

日期:2017/2/28 15:57:04   编辑:Linux教程

Syslog-ng服務是Linux系統中重要的日志服務,搞過Linux下日志管理的大蝦門肯定都熟悉這項服務,在此就不再贅述。現在談一下對日志文件的管理問題。

Syslog-ng服務只提供對log進行接收以及再處理(繼續分發或者存儲),但並不對產生的log文件進行管理,這樣導致的後果就是可能這個文件越來越大,在我們這個項目中,由於忘了對日志文件進行管理,結果導致這個日志文件20多G,囧,很有可能導致系統崩潰。

日志文件管理這項工作其實是由logrotate模塊來負責。

對於logrotate可以參考官網, 上面有詳盡的介紹,最常用的三個方式為:
logrotate /etc/logrotate.conf:重新讀取配置文件,並對符合條件的文件文件進行rotate。
logrotate -d /etc/logrotate.conf:調試模式,輸出調試結果,但並不執行。
logrotate -f /etc/logrotate.conf:強制模式,對所有相關文件進行rotate。

至於logrotate對文件進行管理時的所要執行的規則,可以在/etc/logrotate.d文件夾下創建文件,logrotate會在執行的時候自動讀取相應的規則,比如,我在/etc/logrotate.d/路徑下新建了一個名為syslog的文件,www.linuxidc.com其中的內容為:

  1. /log/test.log
  2. {
  3. size 10M
  4. create
  5. start 10
  6. rotate 4
  7. compress
  8. copytruncate
  9. }

上面代碼的意思為當文件/log/test.log的大小超過10M時就開始循環,允許logrotate創建文件,循環文件的開始為10,即文件為為test.log.10.gz,最多循環創建4個文件,即為test.log.13.gz,多於四個後開始在第一個上面循環,依次迭代。

這樣在配置logrotate的規則的時候就相對非常靈活,當我需求改動,需要添加其他新的規則的時候,我就不必修改syslog文件中的規則,可以新創建一個文件,添加相應的規則即可。這種靈活的配置方式對編程來說是一大便利,對於編程來說就是更容易實現對規則的自動控制了。

另外的一個問題,logrotate規則配置好後怎麼定時去執行呢?這個就可以交給Linux中的crontab來控制了,具體的crontab的配置可以參考官網,我這裡給出我使用的demo:

執行:vi /etc/crontab

配置如下:

*/5 * * * * root /sbin/logrotate /etc/logrotate.conf

表示每隔5分鐘執行檢查一次。

這樣整個配置就基本上完成了。

Copyright © Linux教程網 All Rights Reserved