이 달에 왜 크론 작업이 실행 되었습니까?


31

오늘은 2016 년 11 월 1 일 또는 2016-11-01 (모호하지 않은) 숫자입니다.

다음과 같이 사용자 cron 작업을 설정했습니다.

# m h  dom mon dow   command
33  3   1  */2  *    /home/user/...

요일에 관계없이 매월 첫째 주 오전 3시 33 분에 2 개월마다 실행되어야하지만 어떤 이유로 11을 2로 나눌 수는 없지만 오늘 실행되었습니다.

누군가 나에게 이것을 설명 할 수 있습니까? 2로 나눌 수 있다는 가정이 잘못 되었습니까?

편집 : 나는 cron데비안 8.6 "Jessie"시스템에서 "3.0pl1-127 + deb8u1"버전을 실행하는 것을 언급하는 것을 잊었다 .



그래서 당신은 1 년의 2016 년 11 월 11 일에 대해 이야기하고 있습니다. :) (미국에서 가장 일반적인 날짜 순서는 월-일-년입니다.)
병아리

@chicks이 질문의 편집 기록을 확인, 내가 원래 당신이 ;-) 언급 한 형식 사용
comfreak

@chicks 당신은 월 / 일 / 년을 의미합니까?
user253751

@immibis No. ... comfreak : lol
병아리

답변:


61

/대신이 위에 "단계 값"을 설명 연산 식 아니다 허용 값의 범위. 그래서, 달은 항상 시작부터 1대신에 0, /2(1, 3, 5, 7, 9, 11)의 결과, "다른 모든 값을"의미 할 것입니다.

이것은 명확하지 않고 이해하기 쉽지 않지만 매뉴얼 페이지에서 설명됩니다.

단계 값은 범위와 함께 사용될 수 있습니다. "<번호>"가있는 범위 뒤에는 범위를 통한 숫자 값의 건너 뛰기를 지정합니다. 예를 들어, 시간 필드에서 "0-23 / 2"를 사용하여 격 시간마다 명령 실행을 지정할 수 있습니다 (V7 표준의 대안은 "0,2,4,6,8,10,12,14,16 , 18,20,22 "). 별표 후에 단계도 허용되므로 "2 시간마다"라고 말하려면 "* / 2"만 사용하십시오.


2
귀하의 답변에 감사드립니다. 맨 페이지를 다시 읽고 내 머리 에서이 작업을 수행 한 후에이 사실을 깨달았습니다. 나는 일반적으로 숫자가 0으로 시작하고 내 가정이 실제로 의미가있는 단기 cron 작업으로 작업하고있었습니다.
comfreak

18
나는 왜이 질문에 더 자주 묻지 않고 같은 결론에 이르렀는지에 대해 생각했다. 달 필드에서 "*"이외의 작업을하는 사람은 거의 없기 때문이다.
Sven

하나의 질문, 숫자가 나누지 않으면 */5어떻게 될까요? 1,6,11,1,6 ... 아니면 1,6,11,4,9 ...입니까? "허용 된 값 범위를 넘어서"는 메모리가 없다는 것을 의미한다고 생각했지만 지금은 그렇게 확신하지 못했습니다.
MariusSiuram

@MariusSiuram : 첫 번째 변종. 다시 말하지만 이것은 산술 연산이 아닙니다. crond가능한 값 목록을 가져 와서 단계 선택기를 한 번 적용한 다음이 결과를 반복해서 사용하십시오.
Sven

4

오늘은 11 월 첫째 날입니다.

* / 2는 cronjob이 말한대로 격월로 실행됨을 의미합니다.

따라서 다음 달 (12 월) cronjob은 실행되지 않지만 그 다음 달 (1 월)은 실행됩니다.

이 달 전 (10 월) cronjob이 실행되지 않았습니다. 그러나 9 월에 그랬습니다.


1
따라서 */2월 필드 의이 1-11/2아니라 2-12/2. 나는 당신이 틀렸다는 것을 말하는 것이 아니라, 당신이지지하는 문서를 만들 수 있습니까?
MadHatter는 Monica

@ MadHatter Sven이 잘 설명했습니다.
Orphans

1
나는 그가 가장 권위있는 출처를 인용 한 것에 동의한다.
MadHatter는 Monica

2
다만 지적, 9 월 ;-) 8월 10 월 앞에, 그리고
hjpotter92
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.