내 crontab이 실행되지 않는 이유는 무엇입니까?

내 crontab이 실행되지 않는 이유는 무엇입니까?

나는이 크론을 가지고있다

38 * * * * /bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\'''

다른 사용자 아래에 이 cron이 있으므로 배포하도록 사용자를 전환합니다.

sudo su deploy
crontab -e

그리고 내 크론이 보이면 루트 사용자 아래에서 로그를 추적합니다.

tail -n300 -f /var/log/syslog

그리고 내 크론이 보이네

Jul  5 11:38:01 ip-10-70-75-234 CRON[4971]: (deploy) CMD (/bin/bash -l -c 'cd /var/rails/site/releases/20120705144335 && script/rails runner -e qa '\''Play.load_lists'\''')
Jul  5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)

하지만 크론이 실행되지 않거나 권한 문제가 있습니다. 콘솔에서 작업을 실행하면 잘 작동하지만 크론에서는 작동하지 않습니다. 제가 무엇을 놓치고 있는지 알 수 없습니다.

이것은 우분투 12.04 LTS입니다

어쩌면 오류를 확인하기 위해 어딘가에 더 자세한 목록을 기록할 수도 있습니다.

답변1

CRON은 로컬 메일을 통해 애플리케이션의 출력(stdout, stderr)을 전달합니다. 요즘 우분투에는 MTA(메일 전송 에이전트)가 기본적으로 설치되어 있지 않은 것 같습니다. CRON은 전달이 실패할 때마다 시스템 로그 파일에 알림을 인쇄합니다.

Jul  5 11:38:01 ip-10-70-75-234 CRON[4970]: (CRON) info (No MTA installed, discarding output)

내부(로컬) 용도로만 MTA(예: postfix)를 설치할 수 있습니다.

aptitude install postfix

설치하는 동안 사용할 기본 구성을 묻는 메시지가 표시됩니다. 구성 을 선택해야 합니다 Local only.

그런 다음 CRON이 실행한 애플리케이션의 출력을 다음을 사용하여 찾을 수 있습니다.

tail -f /var/mail/<your_username>

물론 로깅 출력을 전용 로그 파일에 쓰거나 내장된 셸 기능을 사용하여 출력을 파일로 파이프/리디렉션할 수도 있습니다.

관련 정보