15일마다 명령을 실행하려면 crontab에서 1,15 또는 */15를 사용해야 합니까?

15일마다 명령을 실행하려면 crontab에서 1,15 또는 */15를 사용해야 합니까?

내가 아는 한 crontab에는 왼쪽에서 오른쪽으로 시작하는 이러한 필드가 있습니다.

1   minutes 0-59
2   hours 0-23
3   days of month 0-31
4   month 1-12
5   day of the week 0-6
6   command

15일마다 15시 30분에 foo 명령을 실행하고 싶습니다. 이는 명령 1과 15가 실행되는 달이 30일(31일)이므로 15일마다 실행되기 때문에 이것이 정확합니다.

30 15 1,15 * * /sbin/foo -a 1> /dev/null

이 구문도 정확합니까?

30 15 */15 * * /sbin/foo -a 1> /dev/null

시스템은 Dillon Cron을 사용하는 Slackware Linux입니다.

답변1

구문은 30 15 */15 * *정확하지만 this 와 동일하게 작동하지 않습니다 30 15 1,15 * *.

후자는 "월" 필드에 고정된 쉼표로 구분된 값을 제공하므로 이번 달 1st과 매월 명령을 실행합니다 .15th

/처음부터 매일 실행되도록 정의된 단계는 */15, (모든 달에 대해) 및 (31일이 있는 모든 달에 대해)를 의미합니다.1511st16th31th


앞서 언급했듯이 man crontab(5)단계 값은 범위와 함께 사용될 수 있습니다. 따라서 /구문을 사용하여 동일한 결과를 얻으 려면 다음을 수행할 수 있습니다. 30 15 1-15/14 * *이는 30 15 1,15 * *.

또 다른 예를 들어, 15일마다 실행하되 매월 5일과 20일에 실행하려는 경우: 5-20/15. 물론 이 경우에는 이라고 쓰는 것이 더 읽기 쉽습니다 5,20. 그러나 범위와 단계를 결합하면 범위 실행의 시작과 끝을 정의할 수 있습니다.

매월 1일, 3일, 5일, 7일 등의 날:*/2

매월 2일, 4일, 6일, 8일 등의 경우:2-30/2

Minutes( 0-59) 및 Hours( 0-23)의 경우 첫 번째 유효한 값 은 다음과 같습니다 0. 0 */2 * * *at 등을 의미합니다 00:00.02:0004:00

관련 정보