Cron 식 생성기

Linux, Spring, Quartz 중에서 고르고, 원하는 시각으로 식을 만든 뒤 식이나 한 줄을 복사합니다. 이미 있는 식 풀이

이미 있는 식 풀이

일정으로 crontab 만들기

이 페이지는 Linux crontab을 만듭니다. 다섯 칸이거나 @daily 같은 단축입니다. 얼마나 자주 돌릴지 고르고, 필요하면 명령을 붙여 한 줄을 복사합니다. 작업을 등록하지는 않습니다. 형식은 Spring과 Quartz도 씁니다. 맨 앞은 초 0이고, Quartz는 ?와 MON-FRI 같은 요일 이름을 씁니다. 이미 있는 식은 이미 있는 식 풀이에서 읽습니다. 타임스탬프는 Unix 타임스탬프입니다.

사용 방법

  1. 형식은 Linux Crontab(5칸), Spring @Scheduled(6칸), Quartz(6–7칸)입니다. 메뉴 아래 줄에 순서와 일요일 숫자가 나옵니다. 일정은 처음에 매일입니다. 시는 2, 분은 0이라 식은 0 2 * * *이고, 설명은 매일 02:00입니다.
  2. 일정은 매분, N분마다, 매시, N시간마다, 매일, 요일, 날짜, 1년에 한 번, 단축 (@daily)입니다. N분마다에는 마다와 분이 나옵니다. 매시에는 분이 나옵니다. N시간마다에는 분과 마다, 시간이 나옵니다. 매일에는 시와 분이 나옵니다. 요일에는 시, 분, 월요일부터 일요일 버튼이 나옵니다. 하나 이상은 켜야 합니다. 날짜에는 시, 분, 일이 나옵니다. 1년에 한 번에는 월도 나옵니다. 단축은 @reboot, @hourly, @daily, @weekly, @monthly, @yearly 입니다. 단축은 형식이 Linux일 때만 나옵니다. Spring과 Quartz는 같은 시각을 유지하고 앞에 초를 붙입니다.
  3. 명령은 비워도 됩니다. /usr/bin/backup.sh 는 식 뒤에 붙어 crontab 줄이 됩니다. 입력하는 즉시 갱신은 켜져 있습니다. 끄면 만들기를 한 번 누릅니다.
  4. 식 복사는 다섯 칸이나 단축을 복사합니다. 한 줄 복사는 식과 명령입니다. 결과 복사는 설명과 다음 10번입니다. 예제 보기는 요일을 월요일–금요일 02:00으로 하고 명령을 /usr/bin/backup.sh 로 넣습니다. 식은 0 2 * * 1-5, 줄은 0 2 * * 1-5 /usr/bin/backup.sh 입니다. 양식 아래 버튼에는 더 있습니다. 15분마다 */15 * * * *, 매일 02:00에 같은 명령 0 2 * * * /usr/bin/backup.sh, 평일 09:00 0 9 * * 1-5, 주말 09:00 0 9 * * 0,6, 월·수·금 09:00 0 9 * * 1,3,5, 매월 1일 0시 0 0 1 * *, 매년 1월 1일 0 0 1 1 *, 2시간마다 30분 30 */2 * * *, @daily, @weekly(일요일 00:00), @reboot. 옆 링크는 풀이 페이지를 엽니다. 모두 지우기는 매분으로 되돌리고 명령을 비웁니다. 식은 * * * * * 입니다.

칸의 의미

식은 분, 시, 일, 월, 요일입니다. 일요일은 0, 월요일은 1, 토요일은 6입니다. 이어진 요일은 붙임표라서 월요일–금요일은 1-5 입니다. 떨어진 날은 쉼표, 예를 들어 1,3,5 입니다. 일곱 요일을 모두 고르면 * 입니다. 형식이 Linux이면 이 다섯 칸입니다. Spring은 앞에 초 0을 두고 요일 숫자는 그대로입니다. Quartz도 앞에 0을 두고, 일이나 요일에 ?를 쓰며, 요일 숫자를 SUN–SAT으로 바꿉니다. Quartz에서 일요일은 1입니다.

N분마다는 */N * * * * 입니다. N시간마다는 0, N, 2N시의 M분입니다. M */N * * *. 31일은 31일이 있는 달에만 실행됩니다. 2월은 건너뜁니다. 명령은 검사하지 않습니다. 한 줄입니다. 작업을 등록하지는 않습니다.

@reboot 는 부팅 때라 시계 시각이 없고, 다음 10번도 없습니다. @hourly 는 0 * * * *. @daily 는 0 0 * * *. @weekly 는 일요일 00:00, 즉 0 0 * * 0 이며 월요일이 아닙니다. @monthly 는 0 0 1 * *. @yearly 는 0 0 1 1 *. 설명에 같다는 말과 다섯 칸이 나옵니다. 다음 10번은 이 컴퓨터의 로컬 시각입니다. crontab을 돌리는 기계는 다른 시간대일 수 있습니다.

어디에 쓰나

  • 매일 02:00 백업: 0 2 * * * /usr/bin/backup.sh.
  • 평일 09:00: 0 9 * * 1-5.
  • 그 기계의 자정이 맞으면 @daily.

질문

왜 @weekly 는 일요일인가요?

Vixie cron에서 @weekly 는 일요일 00:00입니다. 월요일로 하려면 요일에서 월요일을 켭니다. 시각이 00:00이면 식은 0 0 * * 1 입니다.

Quartz 식도 만드나요?

만듭니다. 형식을 Quartz로 바꾸면 됩니다. 매일 02:00은 0 0 2 * * ? 입니다. 월요일–금요일은 MON-FRI 입니다. 이미 있는 식 풀이는 붙여 넣은 식을 읽을 때 씁니다.

다음 실행이 UTC와 다릅니다.

다음 10번은 이 컴퓨터 시계입니다. 서버의 crontab은 그 서버의 시간대입니다.

2월에 31일이 안 나옵니다.

2월에는 31일이 없어서 건너뜁니다. 목록은 그 날이 있는 다음 달입니다.