首先我要说的是,我是 syslog-ng 和 logrotation 的新手,正在家里学习。
我有从路由器发送到系统日志服务器的日志文件,并且记录没有问题,并且会旋转、压缩并将它们移动到不同的目录。
轮换后,它会为新的一天创建新的日志文件,压缩旧文件并移动它,但它会留下昨天的日志文件的副本为空白。我的存档目录中也会有日志的压缩版本。结果我得到了以下内容:
-rw-r--r-- 1 root adm 0 Jul 18 00:00 router.2019.07.17.log
-rw-r--r-- 1 root adm 50M Jul 18 06:52 router.2019.07.18.log
syslog-ng 文件
/var/log/router/router*.log
{
rotate 2
daily
compress
missingok
notifempty
postrotate
invoke-rc.d syslog-ng reload > /dev/null
endscript
}
我确实有一个 cron 作业,可以强制运行所有这些并移动文件,但我不怀疑这是问题所在。以下是我的 syslog-ng.conf 文件中与我的路由器相关的部分的副本:
# router ###########
# Add Filter to add our router
filter f_router { host( "192.168.X.X" ); };
# Add destination file where logs will be stored
#destination df_router { file("/home/pi/files/router.log"); };
log { source ( s_net ); filter( f_router ); destination ( df_router ); };
destination df_router {
file("/var/log/router/router.${YEAR}.${MONTH}.${DAY}.log"
template-escape(no));
};