cron이 내 작업을 실행하지 않는 이유를 어떻게 알 수 있나요?

cron이 내 작업을 실행하지 않는 이유를 어떻게 알 수 있나요?

저는 Ubuntu 14.04를 사용하고 있으며 cron 데몬이 실행 중입니다.

# ps ax | grep cron
822 ?        Ss     0:00 cron

하지만 어떤 작업도 실행하지 않습니다. 이전에 /var/log/syslog다음과 같은 항목을 얻었습니다 .

2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))

하지만 이제 cron 관련 항목이 없습니다. 나는 또한 다음과 같은 항목을 얻었습니다 /var/log/auth.log.

2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root

하지만 이제 cron 관련 항목이 없습니다.

나는 아무것도 바뀌었다는 것을 모른다. cron을 다시 시작해 보았습니다.

# service cron restart
cron stop/waiting
cron start/running, process 24907

작동하는 crontab -ecron 작업을 추가하려고 시도했지만 에 새 crontab이 설치되었지만 cron이 .* * * * * date >> /tmp/somefile/var/spool/cron/crontabs/root/etc/crontab

사용할 수 있는 디버그 옵션이 있습니까? 아니면 조사할 수 있는 오류 메시지를 표시할 수 있는 로그가 있습니까?

답변1

작업 의 문제점을 디버깅하는 데 추가 도움을 받으려면 cron메일을 확인해야 합니다. 이는 일반적으로 /var/mail/<user_name>또는 /var/spool/mail/<user_name>.

이 두 파일은 실제로 내 데비안 상자에 있는 하드링크이지만 이것이 표준인지는 모르겠습니다.

설명

페이지 에서 cron(8):

명령을 실행할 때 모든 출력은 crontab 소유자(또는 crontab의 MAILTO 환경 변수가 있는 경우 해당 사용자)에게 메일로 전송됩니다.

답변2

루트에 대한 crontab이 없음을 확인했습니다. crontab 항목을 가지고 있는 사용자가 있습니까? 루트만 사용하는 경우 다음 디렉토리를 확인할 수도 있습니다: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly

내 컴퓨터(centos 6.4)에는 /etc/cron.daily/ 디렉터리 내부에 mlocate.cron이 있고 cron은 해당 스크립트를 매일 실행합니다.

그래서 크론 작업만 추가하면 될 것 같아요.

답변3

/etc/crontab다음 권한을 변경하여 이 문제를 해결했습니다 .

-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab

이전에는 -rw-rw-r--. 그것이 유일한 변화였습니다. 작동하지 않았는데 이제는 작동합니다. 아직도 이유를 잘 모르겠습니다.

답변4

나도 비슷한 유형의 문제가 있었지만 루트를 사용자로 지정한 후 /etc/crontabcron 작업이 트리거되기 시작했습니다.

crontab -e와 다른 구문을 따르는 것이 원인일 수 있습니다 /etc/crontab.

관련 정보