리눅스·맥에서 「특정 시각에 자동 실행」은 거의 cron으로 합니다.
시스템 데몬이 분 단위로 깨어나 등록된 작업을 실행.
파이썬 스크립트와 결합하면 강력한 자동화 환경.
crontab 편집.
crontab -e로 편집.
형식: 분 시 일 월 요일 명령.
0 9 * * * /usr/bin/python3 /path/script.py — 매일 9시.
*/30 * * * * ...
— 30분마다.
crontab.guru에서 표현식 시각적으로 확인 가능.
흔한 함정.
1) cron 환경은 셸과 PATH가 다름 → 파이썬·스크립트 모두 절대 경로로.
2) 작업 디렉토리 다름 → 파일 경로도 절대 경로 또는 cd로 명시.
3) 출력은 자동으로 메일로 → 로그 파일로 리다이렉트(>> /var/log/myjob.log 2>&1).
systemd timer — 모던 대안.
/etc/systemd/system/myjob.service(실행 작업 정의)와 myjob.timer(언제 실행할지).
의존성·재시작·로그가 systemd journalctl로 통합.
다만 cron보다 설정이 길고 복잡.
Mac·윈도우.
맥은 launchd(plist 파일)가 cron을 대체하지만, cron도 여전히 동작.
윈도우는 작업 스케줄러(Task Scheduler) GUI로.
크로스 플랫폼이 필요하면 파이썬 내부 스케줄러나 Docker화도 고려.
한 줄 요약
cron은 분 단위 시스템 데몬.
절대 경로·로그 리다이렉트가 함정.
systemd timer가 모던 대안, 맥은 launchd, 윈도우는 작업 스케줄러.
더 알아볼 것
- crontab.guru로 cron 표현식 검증
- Mac launchd plist 작성
- Anacron — 부팅 시 놓친 작업 실행