@weekly가 왜 이렇게 작동하나요? 지침이 잘못되었나요?

@weekly가 왜 이렇게 작동하나요? 지침이 잘못되었나요?

crontab(5) 매뉴얼에는 다음과 같이 나와 있습니다:

분, 시, 월 필드가 현재 시간과 일치하고 두 날짜 필드(일 또는 요일) 중 하나 이상이 현재 시간과 일치하면 cron(8)에 의해 명령이 실행됩니다("참고" 참조). 아래에). cron(8)은 매분마다 cron 항목을 확인합니다. 시간 및 날짜 필드는 다음과 같습니다.

field          allowed values
-----          --------------
minute         0-59
hour           0-23
day of month   1-31
month          1-12 (or names, see below)
day of week    0-7 (0 or 7 is Sun, or use names)

또한 다음과 같이 말합니다.

필드는 항상 "첫 번째-성"을 나타내는 별표(*)일 수 있습니다.

그 예는 다음과 같습니다:

 @weekly        Run once a week, "0 0 * * 0".

별표 설명 중 "0 0 * * 0"은 "0 0 1-31 1-12 0"과 같습니다. 내 질문은 왜 매일이 표현에 맞지 않습니까? 문서에 따르면

분, 시, 월 필드가 현재 시간과 일치하는 경우적어도 하나가 있을 때2일 필드(월 또는 요일)가 현재 시간과 일치합니다.

그러면 2019.12.25 00:00과 2019.12.26 00:00이 이 표현식에 유효한 시간이 아닌 이유는 무엇입니까?

둘 다 만족해요"분, 시간, 월 필드가 현재 시간과 일치합니다.", 월은 1~12, 분과 시는 0입니다.

그러면 둘 다 만족할 거예요."두 날짜 필드(월 또는 요일) 중 하나 이상이 현재 시간과 일치합니다." - 해당 월의 날짜가 1~31이므로 한 번의 만족으로 충분합니다.

내가 어디서 잘못됐나요?

답변1

Druben이 언급했듯이 "아래 "참고"참조"를 놓쳤습니다.

참고: 명령이 실행되는 날짜는 "월"과 "요일"의 두 필드에서 지정할 수 있습니다. 두 필드가 모두 제한된 경우(즉, "*"문자를 포함하지 않음) 두 필드 중 하나가 현재 시간과 일치할 때 명령이 실행됩니다.

0 0 * * 0*날짜가 있으므로 두 필드 규칙 모두 적용되지 않습니다. 날짜 필드 중 하나가 이고 *다른 하나가 아닌 경우 필드가 아닌 항목이 일치하는 경우 *에만 명령이 실행됩니다. *이는 *숫자 범위 규칙의 예외입니다.

설명서의 오류는 다음 문장입니다.

*필드에는 항상 "첫 번째-성"을 나타내는 별표( )가 포함될 수 있습니다 .

이 예외에 대한 언급은 없습니다.

답변2

지정된 마지막 필드오직일요일 달리기. 매주 일요일이 선택되도록 일 및 월 필드가 열려 있습니다. 이것은 광고된 대로 작동합니다.

관련 정보