「특정 시각에 작업 실행」을 cron 대신 systemd timer로.
더 풍부한 기능 — 부팅 후 한 번, 부팅 후 N분 후, 다른 단위와 의존성 등.
구조.
한 짝의 두 파일.
mybackup.service(실행 작업) + mybackup.timer(언제).
같은 이름 + 다른 확장자.
예시 — 매일 새벽 3시.
mybackup.timer: [Unit] Description=Daily backup.
[Timer] OnCalendar=*-*-* 03:00:00 / Persistent=true.
[Install] WantedBy=timers.target.
OnCalendar 형식이 매우 강력 — daily·hourly·"Mon..Fri 09:00" 등 가능.
OnCalendar 형식.
*-*-* 03:00 — 매일 3시.
Mon *-*-* 09:00 — 매주 월요일 9시.
*-*-1 09:00 — 매달 1일 9시.
*:0/15 — 15분마다.
systemd-analyze calendar "*-*-* 03:00"로 다음 실행 시각 확인.
cron 대비 장점.
1) journalctl로 통합 로그.
2) Persistent=true — 시스템 꺼져 있어 놓친 실행을 다음 부팅 시 보충.
3) 의존성·재시도 같은 systemd 기능 활용.
4) 사용자 단위(systemctl --user).
cron은 단순한 「시간 기반 실행」, systemd timer는 systemd의 모든 기능과 결합.
한 줄 요약
systemd timer는 cron 대안.
.timer + .service 짝.
OnCalendar 형식 강력(매일·주간·N분).
Persistent로 놓친 실행 보충, journalctl 통합 로그, systemd 의존성 활용.
더 알아볼 것
- OnBootSec·OnUnitActiveSec 옵션
- systemd-analyze calendar
- cron vs timer 선택 가이드