概述
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` 文件並處理所有配置的日誌輪換任務。