「특정 시각에 명령 자동 실행」의 표준 도구.
1970년대 유닉스부터 있는 고전이지만 지금도 매우 자주 사용.
systemd timer 대안이 있지만 단순함이 강점.
crontab 편집.
crontab -e — 본인 crontab 편집.
crontab -l — 보기.
crontab -r — 삭제(주의).
시스템 전역 cron은 /etc/crontab과 /etc/cron.d/, /etc/cron.daily 등.
형식.
분 시 일 월 요일 명령.
0 9 * * * /path/script.sh — 매일 9시.
*/30 * * * * — 30분마다.
0 0 1 * * — 매달 1일 자정.
0 9 * * 1-5 — 평일 9시.
crontab.guru로 표현식 시각적 확인.
흔한 함정.
1) cron의 PATH는 셸과 다름 — 명령은 절대 경로(/usr/bin/python3 ...).
2) 작업 디렉토리 다름 — cd로 명시 또는 절대 경로.
3) 환경변수 다름 — 필요한 건 스크립트 시작에 export.
4) 출력은 메일로 — > /var/log/myjob.log 2>&1로 파일 리다이렉트.
디버깅.
cron 실행이 잘 안 되면 1) 손으로 명령 직접 실행 — 동작 확인.
2) crontab의 명령을 셸 1줄에 풀어 실행.
3) /var/log/syslog에서 cron 로그 확인.
4) 출력을 일단 /tmp/test.log로 보내 잡힘 확인.
cron 디버깅의 80%는 환경변수·PATH 문제.
한 줄 요약
cron은 시간 기반 자동 실행.
crontab -e로 편집, 분/시/일/월/요일 형식.
흔한 함정 — PATH·환경변수·출력 메일.
crontab.guru로 표현식 확인, 디버깅은 PATH 우선.
더 알아볼 것
- @reboot·@daily 등 약식
- anacron — 놓친 작업 보충
- fcron — cron의 모던 대안