출력 캡처·MAILTO·로그 확인 체크리스트
cron 은 실패해도 대개 조용히 넘어갑니다. 이 도구로 표현식이 올바른데도 작업이 안 돈다면, 문제는 표현식이 아니라 실행 환경일 가능성이 큽니다. 원인을 좁히는 방법을 순서대로 정리합니다.
출력을 파일로 남기세요. cron 은 작업의 표준출력·표준에러를 기본적으로 메일로 보내는데, 메일이 설정돼 있지 않으면 그대로 사라집니다. 명령 뒤에 >> /var/log/myjob.log 2>&1 을 붙여 stdout 과 stderr 를 모두 로그 파일에 남기면 무슨 일이 있었는지 바로 확인할 수 있습니다.
MAILTO 로 알림을 받으세요. crontab 상단에 MAILTO="you@example.com" 을 두면 작업 출력·오류가 그 주소로 전달됩니다. 조용한 실패를 막는 가장 쉬운 안전장치입니다. 반대로 메일을 원치 않으면 MAILTO="" 로 비웁니다.
시스템 로그를 보세요. 데비안·우분투 계열은 grep CRON /var/log/syslog, systemd 환경은 journalctl -u cron(또는 crond)으로 cron 이 작업을 트리거했는지 확인합니다. 여기서 중요한 구분은 '실행을 시도했는지'와 '스크립트가 성공했는지'는 다르다는 점입니다.
마지막으로 흔한 원인 체크리스트입니다. ① 모든 명령·파일을 절대경로로 지정했는가 ② 필요한 PATH 를 crontab 에 선언했는가 ③ 스크립트에 실행 권한(chmod +x)이 있는가 ④ 작업을 맞는 사용자의 crontab 에 넣었는가(root 와 일반 사용자 crontab 은 별개). 이 네 가지를 확인하고, 표현식 자체는 이 해석기로 다시 검증하세요.