首頁 > 套件與系統管理 > logrotate

logrotate:系統日誌文件管理

logrotate 是一個負責系統日誌文件自動輪換(rotation)、壓縮(compression)、刪除(removal)和郵寄的工具。此工具可防止日誌文件變得過大而佔用磁盤空間或影響系統性能,從而實現高效的日誌管理。

概述

logrotate 根據配置文件定期管理日誌文件。舊日誌根據保留期限被刪除或壓縮,以節省磁盤空間,並創建新的日誌文件以確保系統穩定運行。在大多數 Linux 系統中,它通過 cron 作業每天自動運行。

主要功能

  • 日誌文件自動輪換和保留
  • 舊日誌文件壓縮和刪除
  • 高效的磁盤空間管理
  • 基於配置文件的靈活規則應用
  • 預裝在大多數 Linux 發行版中

主要選項

logrotate 主要通過配置文件工作,但您也可以使用命令行選項來控制特定操作。

執行控制

文件指定

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`logrotate` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

logrotate 通常由 cron 自動執行,但您也可以手動執行或使用特定選項進行測試。

使用默認配置文件執行 logrotate

sudo logrotate /etc/logrotate.conf

通常由 cron 自動執行,但這是手動使用默認配置文件執行 logrotate 的命令。

以調試模式執行以預覽更改

sudo logrotate -d /etc/logrotate.conf

不實際更改日誌文件,而是模擬 logrotate 將執行的操作並顯示出來。在應用新配置前進行測試是必不可少的。

強制輪換日誌文件

sudo logrotate -f /etc/logrotate.conf

忽略輪換條件(例如時間、大小),立即輪換日誌文件。用於緊急情況或需要立即處理特定日誌時。

使用特定應用程序的配置文件執行

sudo logrotate -c /etc/logrotate.d/nginx

僅使用 `/etc/logrotate.d/` 目錄中的特定應用程序配置文件來執行 logrotate。

提示與注意事項

有效使用 logrotate 的提示和注意事項。

配置文件位置

logrotate 的配置文件通常位於兩個位置。

  • /etc/logrotate.conf: 全局配置文件,包含所有日誌的默認值和其他配置文件(include)。
  • /etc/logrotate.d/: 存放定義單個應用程序(例如 Nginx、Apache、MySQL)日誌輪換規則的文件的目錄。

主要配置指令

在 logrotate 配置文件中常用的指令。

  • rotate N:保留 N 個輪換後的日誌文件。
  • daily/weekly/monthly/yearly:指定日誌輪換週期。
  • compress:壓縮輪換後的日誌文件。
  • delaycompress:在下一個輪換週期時壓縮前一個日誌。
  • notifempty:如果日誌文件為空,則不進行輪換。
  • missingok:即使日誌文件不存在,也不會產生錯誤。
  • create [mode owner group]:創建新的日誌文件。
  • postrotate/endscript:定義日誌輪換後要執行的腳本。

更改配置時進行測試

在應用新的 logrotate 配置之前,務必使用 `-d`(或 `--debug`)選項進行測試。這是驗證配置有效性且不影響實際系統的最安全方法。

與 cron 的集成

logrotate 通常通過 `/etc/cron.daily/logrotate` 腳本每天自動運行。此腳本讀取 `/etc/logrotate.conf` 文件並處理所有配置的日誌輪換任務。


相同類別命令