이 두 개의 복잡한 cron 문의 형식을 어떻게 지정합니까?

이 두 개의 복잡한 cron 문의 형식을 어떻게 지정합니까?

매우 구체적인 cron 문 두 개가 필요합니다.

  1. 매월 둘째 월요일 02:00부터 4시간마다 실행되고 /opt/bin/cleanup.sh 파일을 실행하는 cron 항목입니다.

  2. 매월 3일 18:15에 실행될 cron 항목이며 "r"로 끝나고 /opt/bin/verrrrrrrry.sh를 실행합니다.

나는 다양한 크론 테스터를 사용해 보았습니다.

예약된 작업 검사기,계획된 작업 테스터,그리고예약된 작업 번역기

그러나 위에서 언급한 것처럼 이들 중 누구도 고급 cron 표현식을 처리할 수 없는 것 같습니다(또는 올바른 표현식 형식을 지정하는 방법을 모르겠습니다).

크론 트리거 튜토리얼그리고 위키피디아

내 cron 명령문을 어떻게 확인할 수 있나요? 나는 데몬이 이벤트를 실행할 수 있도록 실제 이벤트가 완료될 때까지 기다릴 수 없습니다.

고급 표현식을 지원하는 좋은 크론 테스터가 있나요? 아니면 cron 데몬이 표현식을 구문 분석하게 하거나 이러한 표현식을 어떻게 인코딩합니까?

이 진술에 대해 내가 지금까지 이해한 것은 다음과 같습니다.

  1. 0 2 * * 0#2 /opt/bin/cleanup.sh
  2. 15 18 3 * * /opt/bin/verrrrrrrry.sh

그러나 물론 이 중 어느 것도 정확하지 않습니다.

#1의 경우 "두 번째 월요일"을 지정하는 방법이나 02:00에 시작하면서 "4시간마다"를 지정하는 방법을 모르겠습니다.

#2의 경우 수동으로 코딩하지 않고 "r"로 끝나는 월만 지정하는 방법을 모르겠습니다. 셋째 날을 어떻게 지정해야 할지 모르겠습니다.

답변1

매월 두 번째 월요일에만 작업을 수행하려면 요일 값이 1이어야 하고, 날짜 값은 8-14여야 하며, 시간은 2, 6, 10, 14, 18, 22여야 합니다. 그리고 분 0. 그러나 dhag가 올바르게 설명하고 솔루션을 제공했듯이 요일과 월을 지정하면(그렇지 않음 *) 둘 중 하나가 일치할 때 프로그램이 실행됩니다. 따라서 둘 중 하나를 명시적으로 테스트해야 하며 요일이 더 쉽습니다.

 0 2,6,10,14,18,22 8-14 * * test $(date +\%u) -eq 1 && /opt/bin/cleanup.sh

마지막 1은 월요일, 월 날짜 범위(8-14)를 결정합니다. 두 번째 월요일인 경우에만 선택하세요.

"r"로 끝나는 매월 3일 18:15:

 15 18 3 september,october,november,december * /opt/bin/verrrrrrrry.sh

(적어도 Vixie cron에서는 월 이름을 사용할 수 있습니다. 지원하지 않는 경우 로 바꿀 수 있습니다 9-12.)

답변2

형식은 분/시/월/일/월/요일입니다.

이것은 만들 것이다

0 4 9-15 * 2 /opt/bin/cleanup.sh그리고

15 18 3 8-14 * /opt/bin/verrrrrrrry.sh

답변3

매월 두 번째 월요일 02:00부터 4시간마다 실행되는 cron 항목

00 02/4 8-14 * * [ `date +\%u` = 1 ] && /opt/bin/cleanup.sh
  • http://crontab.guru/#00_02/4_8-14_*_1

매월 3일 18:15에 실행되고 "r"로 끝나는 cron 항목입니다.

15 18 3 9-12 * /opt/bin/verrrrrrrry.sh
  • http://crontab.guru/#15_18_3_9-12_*

관련 정보