logrotate 究竟對 apache 日誌文件做了什麼?(阿帕奇 2.4 - Ubuntu 14.04)
除了幾個基本的 VHOST 之外,我還有預設的 apache 和 apache 日誌配置。每當我嘗試查看我的 apache 日誌文件(error.log、access.log)時,我都會看到這些文件不斷地被重新排序和重新組織,不幸的是我不明白這是什麼原因或方法。
從我讀過的內容來看,這個日誌文件操作是由一個名為“logrotate”的實用程序執行的。
帶有手冊頁的描述
logrotate 旨在簡化生成大量日誌文件的系統的管理。它允許日誌文件的自動輪換、壓縮、刪除和郵寄。每個日誌文件可以每天、每週、每月或當它變得太大時處理。
我已閱讀以下資源:
- http://www.rackspace.com/knowledge_center/article/understanding-logrotate-utility
- http://linuxcommand.org/man_pages/logrotate8.html
- https://www.digitalocean.com/community/tutorials/how-to-configure-logging-and-log-rotation-in-apache-on-an-ubuntu-vps
- http://httpd.apache.org/docs/2.4/logs.html#rotation
上述資源對如何配置logrotate 提供了很好的技術解釋,但我無法對log rotate的意義做出常識性解釋,因此無法深入了解它的工作原理。我可以看到它對某些文件執行壓縮,這樣做的好處是顯而易見的。
我知道 logrotate 是一個通用實用程序,它可以處理許多服務的日誌文件 - 因此它的功能會根據每個配置發生變化 - 但是,在 Ubuntu 14.04 上的 apache 2.4 的上下文中,“logrotate”是做什麼的?
這個想法是您始終擁有一個包含最新條目的相對較新的主文件(例如 access_log 或 error_log)。當日誌變得太舊或太大時,logrotate 會創建歸檔文件,以便不會丟棄任何資訊(類似於 access_log-YYYYMMDD)。
因此,仍然可以訪問較舊的日誌,而不會在主日誌文件的大小方面失控。具有較少資訊的較小文件更易於閱讀和調試 - 特別是在這些日誌可能增長到幾 GB 的繁忙伺服器上。
例如,在 CentOS 上,Apache 日誌每 7 天輪換一次。
您可以隨意刪除存檔文件,也可以讓 logrotate 處理刪除。
查看man logrotate了解更多詳情。