무엇을 하나
- crontab 은 Ubuntu 24.04 의 cron(Vixie cron 3.0pl1) 규칙을 따릅니다. 5칸,
mon·jan같은 이름, 범위1-5, 목록1,15, 간격*/15·10-50/20, 줄임말@daily·@weekly등. - systemd 는 systemd 255 의 달력 계산 코드를 옮긴 것이라, 정규화 형태가
systemd-analyze calendar가 찍는 글자와 같고 다음 실행 시각도 같은 규칙으로 셉니다.~(말일부터),..범위,/반복, 소수 초, 끝에 붙인 시간대까지. - 다음 실행 시각은 고른 시간대(브라우저 · UTC · Asia/Seoul)로 브라우저 안에서 계산합니다.
예시
| 식 | 종류 | 뜻 |
|---|---|---|
*/15 * * * * | cron | 15분마다 |
30 4 * * * | cron | 매일 04:30 |
0 9 * * 1-5 | cron | 평일(월~금) 09:00 |
0 0 1 * 1 | cron | 매월 1일 또는 매주 월요일(OR) |
Mon..Fri 09:00 | systemd | Mon..Fri *-*-* 09:00:00 |
*:0/15 | systemd | *-*-* *:00/15:00 — 15분마다 |
*-*~01 23:00 | systemd | 매월 말일 23:00 |
Sun *-*-1..7 3:00 | systemd | 매월 첫째 일요일 03:00(AND) |
어떻게 확인했나
공개 전에 systemd 결과는 systemd-analyze calendar --iterations=5(systemd 255)와 식 77개로, cron 결과는 Python 라이브러리 croniter 와 따로 짠 전수 검사기로 식 66개를 Asia/Seoul 기준으로 대조했습니다. cron 구현끼리 다른 부분은 숨기지 않고 화면에 경고로 띄웁니다.
자주 묻는 것
0 0 1 * 1 이 1일이 아닌 월요일에도 도는 이유는?
crontab(5): 일 칸과 요일 칸을 둘 다 정하면 둘 중 하나만 맞아도 돕니다. 「1일이면서 월요일」만 원하면 한 칸을 * 로 두고 명령 안에서 나머지를 검사하거나, systemd 타이머를 씁니다 — Mon *-*-01 00:00 은 둘 다 맞아야 돕니다.
입력한 식이 서버로 가나요?
아니요. 식을 풀고 시각을 세는 계산은 모두 브라우저 안에서 합니다. 입력값은 서버로 보내지 않고, 이 사이트가 쓰는 방문 통계(Google 애널리틱스)와 광고에도 넘기지 않습니다. 자세한 것은 개인정보 처리 안내에 있습니다.
systemd 타이머가 1분쯤 늦게 도는 이유는?
systemd 는 타이머가 깨어나는 때를 묶습니다. 유닛에 AccuracySec= 를 주지 않으면 계산된 시각보다 최대 1분 늦게 시작할 수 있습니다(systemd.timer(5)). 여기 보이는 시각은 계산된 시각입니다.