cron — 오래되고 단순한 방식
cron은 수십 년간 쓰여온 전통적인 리눅스 작업 스케줄러입니다. crontab 파일에 "분 시 일 월 요일 명령어" 형식으로 규칙을 적어두면 지정된 시간에 실행됩니다.
# 매일 새벽 2시에 백업 스크립트 실행
0 2 * * * /usr/local/bin/backup.sh
systemd timer — 현대적인 대안
systemd timer는 .timer 유닛과 .service 유닛을 짝지어 동작합니다. systemd가 관리하는 다른 서비스들과 동일한 로깅(journalctl)·의존성 관리 체계를 그대로 씁니다.
systemd timer가 유리한 점
- 로그 통합: 실행 결과가 journalctl에 남아 다른 로그와 함께 확인 가능
- 의존성 관리: 특정 서비스가 뜬 이후에만 실행되도록 조건을 걸 수 있음
- 누락된 실행 보완: 시스템이 꺼져있어 실행을 놓쳤을 때 `Persistent=true` 옵션으로 재부팅 후 보완 실행 가능
cron이 여전히 쓰이는 이유
문법이 단순하고 어디서나 동일하게 동작해, 간단한 개인 스크립트나 오래된 시스템에서는 여전히 cron이 편합니다.
선택 기준
단순 반복 작업 한두 개면 cron으로 충분하고, 여러 서비스와 연계되거나 신뢰성 있는 로깅·재시도가 필요하면 systemd timer가 더 적합합니다.