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