/etc/cron.daily 中有两个脚本似乎正在轮换我的日志:logrotate 和 sysklogd

/etc/cron.daily 中有两个脚本似乎正在轮换我的日志:logrotate 和 sysklogd

看来我的 syslog 生成的日志文件每天要轮换两次。我认为这是因为 /etc/cron.daily/logrotate 和 /etc/cron.daily/sysklogd 的工作重叠。

以下是 sysklogd 脚本中的相关行:

logs=$(syslogd-listfiles)

test -n "$logs" || exit 0

for LOG in $logs
do
   if [ -s $LOG ]; then
      savelog -g adm -m 640 -u ${USER} -c 7 $LOG >/dev/null
   fi
done

处理此问题的最佳常见做法是什么?syslog 生成的文件不应列在 logrotate 中吗?如果我想使用 logrotate 的一些更高级的功能(如 postrotate 脚本),我应该尝试让 /etc/cron.daily/sysklogd 执行此操作,还是应该注释掉这些行并让 logrotate 执行此操作?

答案1

当 sysklogd 开始进行日志轮换时,我非常恼火——这并不是说它是一种其他地方不存在的缺失功能。但是,在我的系统上,logrotate 并未配置为对系统日志执行任何操作——这是您手动配置的吗?

为了保持最小意外原则,我让 sysklogd 轮换它自己的日志(因为,如果其他人需要维护我的一个系统,他们最好尽可能采用默认行为),但如果你想要 logrotate 的高级功能,我会关闭 sysklogd cron 作业,注释掉指向正确位置的指针,然后让 logrotate 疯狂运行。

答案2

什么分布?

如果您运行“syslogd-listfiles”,该列表中输出的任何文件是否也通过 /etc/logrotate.d/ 中的文件进行管理?

在我的 Ubuntu 机器上,/etc/cron.daily/sysklogd 实际上没有做任何事情,因为 /usr/sbin/syslogd-listfiles 不存在。

相关内容