如何使用附加配置防止 rsyslog 将 cron 任务记录到 /var/log/syslog

如何使用附加配置防止 rsyslog 将 cron 任务记录到 /var/log/syslog

我有一个用于 cron 任务的 Docker 映像。这是 Dockerfile:

FROM php:8.0-fpm

RUN apt-get update
RUN apt-get install -y cron rsyslog

RUN touch /var/log/cron.log
RUN chmod 0777 /var/log/cron.log

COPY ./app /var/www/app
COPY crontab /etc/cron.d/crontab
RUN chmod 0644 /etc/cron.d/crontab
RUN crontab /etc/cron.d/crontab

COPY 02-cron.conf /etc/rsyslog.d/02-cron.conf

CMD service rsyslog start && service cron start && tail -f /dev/null

默认情况下,rsyslog 将 cron 记录到 /var/log/syslog。我想将 cron 记录到单独的文件 /var/log/cron.log 中。

rsyslog 的主配置 /etc/rsyslog.conf 有以下几行:

*.*;auth,authpriv.none      -/var/log/syslog
#cron.*             /var/log/cron.log

我想禁用将 cron 记录到 /var/log/syslog 并通过添加一个配置 /etc/rsyslog.d/02-cron.conf 来启用将其记录到 /var/log/cron.log:

*.*;cron,auth,authpriv.none     -/var/log/syslog
cron.*                          /var/log/cron.log

但结果是 cron 记录到 /var/log/syslog 和 /var/log/cron.log。

答案1

您的配置中的行:

*.*;cron,auth,authpriv.none     -/var/log/syslog

使它像这样:

*.*;cron.none,auth,authpriv.none     -/var/log/syslog

停止cron登录syslog

您还可以在日志-路径前面添加破折号(),cron以避免每次写入时刷新缓冲区。所以你的 cron 行变成:

cron.*                          -/var/log/cron.log

相关内容