>  기사  >  운영 및 유지보수  >  crontab이 적용되지 않는 문제를 docker가 해결하는 방법

crontab이 적용되지 않는 문제를 docker가 해결하는 방법

WBOY
WBOY원래의
2022-08-16 18:18:367729검색

해결책: 1. 컨테이너의 "/etc/init.d/crond status"가 실행 상태인지 확인하세요. 2. "/etc/pam.d/crond" 파일을 수정하고 "required"를 "충분함"으로 변경하세요. 3. "/etc/init.d/crond restart"를 사용하여 crond 서비스를 다시 시작합니다.

crontab이 적용되지 않는 문제를 docker가 해결하는 방법

이 튜토리얼의 운영 환경: linux7.3 시스템, docker 버전 19.03, Dell G3 컴퓨터.

docker에서 crontab이 적용되지 않는 문제를 해결하는 방법

docker에서는 기본적으로 centos 이미지가 사용됩니다. yum을 통해 성공적으로 설치한 후에는 crontab이 적용되지 않습니다.

1. 먼저 컨테이너의 /etc/init.d/crond 상태가 실행 중인 상태인지 확인하세요.

첫 번째 단계를 통해 문제가 해결되지 않으면 다음 방법을 참조하세요.

2. /etc/pam.d/crond 파일을 수정하고, 필수로 변경한 후 crond 서비스를 다시 시작합니다: /etc /init.d /crond restart

crontab이 적용되지 않는 문제를 docker가 해결하는 방법

참고: 이 문제는 centos7 기본 이미지에는 없는 것 같습니다.

지식 확장

가장 빠른 솔루션

1. 호스트 머신에서

       1 3  * * * root  cd /data/wwwroot/xxx && docker-compose exec app php think xxx >> /var/log/crontab_xxx.log

docker-compose exec app php에서 xxx가 성공적으로 실행되지 않았다고 생각합니다

2. 그런 다음 컨테이너에 crontab을 설치했지만 여전히 실행할 수 없습니다. 성공, 관건은 관련 로그가 없다는 점입니다. crontab도 시작되었는지 확인하세요. /etc/init.d/cron status

3. rsyslog 설치, apt-get install rsyslog, service rsyslog start

/var/log/syslog

Dec 25 09:07:07 1a8e4fd5c766 crontab[15120]: (root) BEGIN EDIT (root)
Dec 25 09:07:34 1a8e4fd5c766 crontab[15120]: (root) REPLACE (root)
Dec 25 09:07:34 1a8e4fd5c766 crontab[15120]: (root) END EDIT (root)
Dec 25 09:08:01 1a8e4fd5c766 cron[15100]: (root) RELOAD (crontabs/root)
Dec 25 09:08:01 1a8e4fd5c766 CRON[15133]: Cannot make/remove an entry for the sp

보기 4. /etc/pam.d/cron

수정

코멘트아웃 세션 필수 pam_loginuid.so

5. cron을 다시 시작하고 성공적으로 실행

또한 dockerfile에 다음 줄을 추가하세요

RUN sed -i '/session    required   pam_loginuid.so/c\#session    required   pam_loginuid.so' /etc/pam.d/crond

Crontab 실행에서도 피트가 발생했는데, 스크립트를 수동으로 실행해도 문제가 없습니다. 환경 변수를 설정했습니다. PHP는 절대 경로를 작성해야 합니다

 /usr/local/bin/php think xxx

권장 학습: "docker 비디오 튜토리얼"

위 내용은 crontab이 적용되지 않는 문제를 docker가 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.