配置日志輪轉以節省空間是一個常見的系統管理任務。以下是使用 logrotate
工具在 Linux 系統上進行日志輪轉的基本步驟:
大多數 Linux 發行版默認已經安裝了 logrotate
,但如果沒有,可以使用包管理器進行安裝。
# 在 Debian/Ubuntu 上
sudo apt-get install logrotate
# 在 CentOS/RHEL 上
sudo yum install logrotate
# 在 Fedora 上
sudo dnf install logrotate
logrotate
的配置文件通常位于 /etc/logrotate.conf
,但更常見的是在 /etc/logrotate.d/
目錄下創建特定應用程序的配置文件。
假設我們要為 /var/log/myapp.log
文件配置日志輪轉,可以創建一個名為 myapp
的文件在 /etc/logrotate.d/
目錄下:
sudo nano /etc/logrotate.d/myapp
然后在文件中添加以下內容:
/var/log/myapp.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root adm
}
解釋:
daily
: 每天輪轉一次日志。rotate 7
: 保留最近 7 天的日志文件。compress
: 壓縮舊的日志文件以節省空間。delaycompress
: 延遲壓縮,直到下一次輪轉。missingok
: 如果日志文件不存在,不要報錯。notifempty
: 如果日志文件為空,不進行輪轉。create 640 root adm
: 輪轉后創建新的日志文件,權限為 640,屬主為 root,屬組為 adm。你可以手動測試 logrotate
配置是否正確:
sudo logrotate -f /etc/logrotate.conf
-f
選項表示強制輪轉,即使日志文件沒有達到輪轉條件也會進行輪轉。
logrotate
通常由 cron 定時任務自動執行。你可以檢查 /etc/cron.daily/logrotate
文件,確保它存在并且沒有被禁用。
ls /etc/cron.daily/logrotate
如果需要手動觸發一次輪轉,可以使用以下命令:
sudo /usr/sbin/logrotate /etc/logrotate.conf
你可以查看 logrotate
的日志文件來監控輪轉情況:
sudo tail -f /var/log/logrotate.log
通過以上步驟,你可以有效地配置日志輪轉以節省磁盤空間。根據具體需求,你可以調整配置文件中的參數以滿足不同的日志管理需求。