在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
日志的轮转。