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
/etc/rsyslog.d/02-cron.conf設定を追加して/var/log/syslogのcronロギングを無効にし、/var/log/cron.logのロギングを有効にしたいと思います。
*.*;cron,auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
ただし、結果は/var/log/syslogおよび/var/log/cron.logのcronロギングです。
答え1
構成の行:
*.*;cron,auth,authpriv.none -/var/log/syslog
次のようにしてください。
*.*;cron.none,auth,authpriv.none -/var/log/syslog
cron
ログインを停止syslog
記録するたびにバッファがフラッシュされるのを防ぐために、ログパスの-
前にダッシュ()を追加することもできます。cron
したがって、クローンラインは次のようになります。
cron.* -/var/log/cron.log