나는 다음과 같이 일을 정리했다.
* * 6-8 * 1-5 echo "test" >>/tmp/test.log 2>&1
이 작업은 6일, 7일, 8일 3일에만 실행될 것으로 예상됩니다. 그런데 오늘이 18일인데 아직도 진행 중이네요. 이 직업에 무슨 문제가 있나요? 특정 날짜에만 실행하려면 어떻게 해야 하나요?
답변1
해당 월의 날짜와 요일은 OR로 연결되므로 귀하의 예에서는 cron이 6일, 7일 또는 8일에 실행됩니다.또는월요일부터 금요일까지. 18일이 월요일이기 때문에 운영됩니다. 이것은 완전히 직관적이지 않습니다.
원하는 동작을 얻으려면(평일인 경우 6일, 7일, 8일에 실행) 다음을 수행할 수 있습니다.
* * * * 1-5 date '+%d' | grep '[678]' && echo "test" >>/tmp/test.log 2>&1
답변2
월 일 지정(필드-3, 1기준) 및 월 일 필드(5)가 지정됩니다. 이 경우 일치하는 것은 crontab이 실행 중임을 의미합니다.