Cron 식

Linux, Spring, Quartz cron을 풀이하거나 칸으로 만들고, 이 컴퓨터의 로컬 시각으로 다음 10번을 보여 줍니다. Crontab 만들기

Crontab 만들기

각 칸

이 일정은 언제 실행되나

Linux Crontab(5칸), Spring @Scheduled(6칸, 초가 맨 앞), Quartz(6칸, 년을 더하면 7칸) 중에서 고릅니다. 칸을 풀이하고 이 컴퓨터 시계로 다음 10번을 보여 줍니다. 작업을 등록하지는 않습니다. 시각이나 @daily 로 만들려면 Cron 식 생성기를 씁니다. 타임스탬프는 Unix 타임스탬프입니다.

사용 방법

  1. 형식은 Linux Crontab (5칸), Spring @Scheduled (6칸), Quartz (6–7칸)입니다. 메뉴 아래 줄에 순서와 일요일 숫자가 나옵니다.
  2. 식을 입력하거나, 미리 정한 식을 열거나, 「각 칸」의 줄을 바꿉니다. 미리 정한 식에는 매분, 매시, 매일 0시, 매주 일요일 0시, 평일 9–17시, 15분마다, 매월 1일 0시가 있습니다. 입력칸 아래 버튼은 현재 형식의 그 목록을 넣습니다. 매일 02:00, 주말 09:00, 5분부터 15분마다, 2시간마다 30분, 매년 1월 1일도 있습니다. Spring과 Quartz에는 매월 마지막 날 23:00, 15일에 가장 가까운 평일, 첫 월요일 10:15, 마지막 금요일 10:15도 있습니다. Quartz에는 2030년 1월 1일도 있습니다. 버튼 옆 링크는 Cron 식 생성기를 엽니다. 각 줄은 매번, 범위, 간격, 지정입니다. 「지정」일 때만 값이 보입니다. 초와 분은 0–59, 시는 0–23, 일은 1–31, 월은 1–12, 요일은 SUN–SAT입니다. Spring과 Quartz에는 지정 안 함 (?), 마지막 날 (L), 마지막 평일 (LW), 가장 가까운 평일 (W), 몇 번째 요일 (#), 마지막 요일 (nL)도 있습니다. 칸을 바꾸면 식이 다시 써집니다. 줄로 나타낼 수 없는 칸은 직접 입력으로 남고 글자는 유지됩니다.
  3. 「입력하는 즉시 갱신」은 켜져 있습니다. 「풀이」는 한 번 실행합니다. 「예제 보기」는 현재 형식의 평일 예를 넣습니다. Linux는 */15 9-17 * * 1-5, Spring은 0 */15 9-17 * * MON-FRI, Quartz는 0 */15 9-17 ? * MON-FRI입니다.
  4. 결과는 각 칸 다음에 「다음 10번」입니다. 「모두 지우기」는 식과 결과를 비우고 각 칸을 매번으로 되돌립니다. 「결과 복사」는 그 글을 복사합니다. 형식을 바꾸면 초를 넣거나 빼고, Linux에서는 ?를 *로 바꾸며, 요일 숫자를 SUN–SAT으로 바꿔 같은 요일을 유지합니다.

어떤 날이 맞나

Linux는 분, 시, 일, 월, 요일입니다. 일요일은 0, 7 또는 SUN입니다. 월요일은 1입니다. ?, L, W, #는 없습니다. 일과 요일을 모두 제한하면 어느 한쪽이 맞아도 됩니다. 결과에도 그렇게 나옵니다.

Spring은 앞에 초를 붙입니다. 일요일 번호는 Linux와 같습니다. ?는 그 칸을 보지 않습니다. L은 그달 마지막 날입니다. 15W는 15일에 가장 가까운 평일이며 달을 넘지 않습니다. LW는 마지막 평일입니다. MON#1은 첫 월요일입니다. 6L은 마지막 토요일입니다. 여기서 6은 토요일입니다.

Quartz도 같은 여섯 칸이며, 년은 2024-2030처럼 더할 수 있습니다. 일요일은 1 또는 SUN, 월요일은 2, 토요일은 7입니다. 6L은 마지막 금요일입니다. 일이나 요일 중 하나는 ?여야 합니다. 매일 02:00은 0 0 2 * * ?입니다. 양쪽에 값이 있으면 어느 한쪽이 맞을 때 실행하고, 경고를 냅니다. SUN–SAT와 JAN–DEC는 대소문자를 가리지 않으며 세 형식에서 같은 날, 같은 달입니다.

붙임표는 범위, 쉼표는 나열, 빗금은 간격입니다. */15는 그 칸의 시작부터 15마다입니다. 5/15는 5에서 끝까지 15마다라서 분은 5, 20, 35, 50입니다. 시각은 로컬이고 UTC가 아닙니다. 초가 있으면 초 단위로, 없으면 분 단위로 진행합니다.

어디에 쓰나

  • crontab에 넣기 전에 0 2 * * *를 확인합니다.
  • Spring에서 매일 02:00을 0 0 2 * * *로 씁니다.
  • Quartz의 0 15 10 ? * 6L(매월 마지막 금요일 10:15)이나 0 0 23 L * ?(매월 마지막 날 23:00)를 확인합니다.

질문

02:00이 Linux는 5칸, Spring은 6칸인 이유는 무엇인가요?

Linux에는 초가 없습니다. 02:00은 0 2 * * *입니다. Spring과 Quartz는 초가 맨 앞이라 같은 시각은 0 0 2 * * *이고, Quartz에서는 보통 0 0 2 * * ?로 씁니다.

물음표는 무엇인가요?

그 칸을 지정하지 않는다는 뜻입니다. Quartz는 일이나 요일 중 하나를 ?로 둡니다. 0 0 2 * * ?는 매일 02:00입니다.

1은 일요일인가요?

Linux와 Spring에서 1은 월요일이고 일요일은 0 또는 7입니다. Quartz에서 1은 일요일이고 2는 월요일입니다. SUN은 세 형식 모두 일요일입니다.

시계가 UTC와 다릅니다.

다음 10번은 이 컴퓨터의 로컬 시간대입니다.