1. 개요

간단히 말해 cron은 Unix 기반 시스템에서 사용할 수 있는 기본 유틸리티입니다. 사용자가 지정된 날짜/시간에 주기적으로 작업을 실행하도록 예약할 수 있습니다. 그리고 당연히 사람의 개입이 필요한 많은 프로세스 실행을 자동화하기 위한 훌륭한 도구입니다.

Cron은 데몬 프로세스로 실행됩니다. 즉, 한 번만 시작하면 백그라운드에서 계속 실행됩니다. 이 프로세스는 crontab사용 하여 일정 항목을 읽고 작업을 시작합니다.

시간이 지남에 따라 cron 표현 형식이 널리 채택되었고 다른 많은 프로그램과 라이브러리에서 이를 사용합니다.

2. 크론탭으로 작업 하기

크론 일정은 아래에있는 간단한 텍스트 파일 / var / spool / cron / crontabs 디렉토리 Linux 시스템에서. crontab 파일을 직접 편집할 수 없으므로 crontab 명령을 사용하여 액세스해야 합니다 .

crontab 파일 을 열려면 다음 명령을 실행해야 합니다.

crontab -e

crontab의 각 줄 은 표현식과 실행할 명령이 있는 항목입니다.

* * * * * /usr/local/ispconfig/server/server.sh

이 항목은 언급된 스크립트를 1분마다 실행합니다.

3. 크론 표현

cron 표현식을 이해합시다 .

5개의 필드로 구성됩니다.

<minute> <hour> <day-of-month> <month> <day-of-week> <command>

3.1. 표현식의 특수 문자

  • * (all) 은 이벤트가 모든 시간 단위에 대해 발생하도록 지정합니다. 예를 들어, < 분> 필드 의 "*" 는 "분마다"를 의미합니다.
  • ? (any)랜덤의 값을 나타내기 위해 < day-of-month> 및 < day-of -week> 필드에 사용되므로 필드 값을 무시합니다. 예를 들어, "매월 5일"에 스크립트를 실행하려면 해당 날짜의 요일이 무엇인지에 관계없이 "?"를 지정합니다. < 요일> 필드에
  • – (범위) 는 값 범위를 결정합니다. 예를 들어, <시간> 필드 의 "10-11" 은 "10시와 11시"를 의미합니다.
  • , (값) 은 여러 값을 지정합니다. 예를 들어 < 요일> 필드 "MON, WED, FRI ""월요일, 수요일, 금요일"을 의미합니다.
  • /(증분) 은 증분 값을 지정합니다. 예를 들어, < 분> 필드 의 "5/15" 는 "한 시간의 5, 20, 35 및 50분"을 의미합니다.
  • L(마지막) 은 다양한 분야에서 사용될 때 다른 의미를 갖습니다. 예를 들어 < day-of-month> 필드에 적용된 경우 해당 월의 마지막 날, 즉 "1월 31일" 등을 의미합니다. "L-3"과 같은 오프셋 값과 함께 사용할 수 있습니다. 이는 "달의 세 번째에서 마지막 날"을 나타냅니다. < day-of-week> 에서는 "주의 마지막 요일"을 지정합니다. 또한 "지난 금요일"을 나타내는 "6L"과 같이 < day-of-week> 의 다른 값과 함께 사용할 수도 있습니다 .
  • W(요일) 는 해당 월의 지정된 날짜에 가장 가까운 요일(월요일~금요일)을 결정합니다. 예를 들어 < day-of-month> 필드에 "10W"를 지정 하면 "그 달의 10일에 가까운 평일"을 의미합니다. 따라서 "10일"이 토요일이면 "9일"에 작업이 트리거되고 "10일"이 일요일이면 "11일"에 트리거됩니다. < day-of-month> 에 "1W"를 지정 하고 "1st"가 토요일이면 작업이 월요일인 "3rd"에 트리거되고 이전 달로 점프하지 않습니다.
  • # 요일의 "N번째" 발생을 지정합니다. 예를 들어 "매월 세 번째 금요일"은 "6#3"으로 표시될 수 있습니다.

3.2. 크론 표현식 예

필드와 특수 문자 조합을 사용하여 cron 표현식 의 몇 가지 예를 살펴보겠습니다 .

매일 오후 12시(정오) :

0 12 * * ?

매일 오후 1시에 시작하여 오후 1시 55분에 종료하고 오후 6시에 시작하여 오후 6시 55분에 종료되는 5분마다 :

0/5 13,18 * * ?

매일 오후 1시에 시작하여 오후 1시 5분에 끝나는 매분 :

0-5 13 * * ?

6월 매주 화요일 오후 1시 15분, 1시 45분 :

15,45 13 ? 6 Tue

매주 월요일, 화요일, 수요일, 목요일, 금요일 오전 9시 30분 :

30 9 ? * MON-FRI

매월 15일 오전 9시 30분 :

30 9 15 * ?

매월 말일 오후 6시 :

0 18 L * ?

매월 3일~말일 오후 6시 :

0 18 L-3 * ?

매월 마지막 목요일 오전 10시 30분 :

30 10 ? * 5L

매월 셋째주 월요일 오전 10시 :

0 10 ? * 2#3

매월 10일부터 5일 동안 매일 자정 12시 :

0 0 10/5 * ?

4. Cron 특수 문자열

cron 표현식에 지정된 필드 외에도 필드 대신 사용할 수 있는 사전 정의된 특수 값에 대한 지원도 있습니다.

  • @reboot – 시작 시 한 번 실행
  • @yearly 또는 @annualy – 1년에 한 번 실행
  • @monthly – 한 달에 한 번 실행
  • @weekly – 일주일에 한 번 실행
  • @daily 또는 @midnight – 하루에 한 번 실행
  • @hourly – 매시간 실행

5. 결론

이 빠른 기사에서는 cron 작업과 crontab을 살펴보았습니다 .

우리는 또한 일상 업무에서 사용하거나 단순히 다른 표현을 추론할 수 있는 많은 표현 예를 보았습니다.

Generic footer banner