在Debian系統中,Syslog日志輪轉機制主要通過rsyslog
或syslog-ng
服務來實現。以下是詳細的介紹和配置步驟:
rsyslog
進行日志輪轉安裝rsyslog(如果尚未安裝):
sudo apt update
sudo apt install rsyslog
配置rsyslog:
/etc/rsyslog.conf
文件,或者創建一個新的配置文件(例如 /etc/rsyslog.d/50-default.conf
)。手動配置日志輪轉:
/etc/logrotate.d/rsyslog
文件。/var/log/syslog {
rotate 7
daily
missingok
notifempty
compress
delaycompress
postrotate
if [ -f /var/run/syslogd.pid ]; then
kill -HUP `cat /var/run/syslogd.pid`
fi
endscript
}
rotate 7
:保留最近7天的日志文件。daily
:每天輪轉一次日志文件。missingok
:如果日志文件丟失,不會報錯。notifempty
:如果日志文件為空,則不輪轉。compress
:壓縮舊的日志文件。delaycompress
:延遲壓縮,直到下一次輪轉。postrotate
:在輪轉后執行的腳本,這里用于重新加載rsyslog服務。測試配置:
sudo logrotate -f /etc/logrotate.d/rsyslog
這將強制重新輪轉日志文件,并應用新的配置。
syslog-ng
進行日志輪轉安裝syslog-ng(如果尚未安裝):
sudo apt update
sudo apt install syslog-ng
配置syslog-ng:
/etc/syslog-ng/syslog-ng.conf
文件。手動配置日志輪轉:
/etc/logrotate.d/syslog-ng
文件。/var/log/syslog-ng/*.log {
rotate 7
daily
missingok
notifempty
compress
delaycompress
postrotate
/usr/sbin/syslog-ng -F -f /etc/syslog-ng/syslog-ng.conf
endscript
}
rotate 7
:保留最近7天的日志文件。daily
:每天輪轉一次日志文件。missingok
:如果日志文件丟失,不會報錯。notifempty
:如果日志文件為空,則不輪轉。compress
:壓縮舊的日志文件。delaycompress
:延遲壓縮,直到下一次輪轉。postrotate
:在輪轉后執行的命令,通常是重新加載syslog-ng服務。測試配置:
sudo logrotate -f /etc/logrotate.d/syslog-ng
這將強制重新輪轉日志文件,并應用新的配置。
syslog
日志的輪轉。