Linux Syslog日志輪轉主要通過logrotate工具實現,以下是關鍵技巧和配置要點:
安裝logrotate
大多數系統默認安裝,未安裝時使用包管理器安裝:
# Debian/Ubuntu
sudo apt-get install logrotate
# CentOS/RHEL
sudo yum install logrotate
配置日志輪轉規則
在/etc/logrotate.d/目錄下創建自定義配置文件(如syslog),常用參數:
daily/weekly/monthly:輪轉周期。rotate N:保留N個輪轉日志文件。compress:壓縮舊日志(節省空間)。delaycompress:延遲到下一次輪轉時壓縮。missingok:日志文件丟失時不報錯。notifempty:空文件不輪轉。create:輪轉后創建新日志文件并設置權限(如create 0640 root adm)。copytruncate:復制日志內容后清空原文件(適用于無法重啟的服務)。postrotate/endscript:輪轉后執行命令(如重啟服務)。示例配置(針對/var/log/syslog):
/var/log/syslog {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 root adm
postrotate
/usr/sbin/systemctl reload rsyslog
endscript
}
測試與驗證
sudo logrotate -f /etc/logrotate.d/syslog。sudo logrotate -d /etc/logrotate.d/syslog。自動化與監控
/etc/cron.daily/logrotate存在且可執行,logrotate默認通過cron定時運行。cat /var/lib/logrotate/status。注意:部分系統(如使用rsyslog)需在postrotate中重啟服務以確保日志持續寫入。根據實際需求調整參數,平衡日志保留時長與磁盤空間占用。