크론탭 혼란

크론탭 혼란

geeksforgeeks crontab 페이지에서 다음 cronjob을 이해할 수 없습니다.

30 08 10 06 * /home/maverick/full-backup

6월 10일 오전 8시 30분에 진행되는 것으로 알고 있는데 마지막 시간 때문에 당황스럽습니다. 이는 6월 10일 주 동안 매일 실행된다는 뜻인가요? 또는 요일을 알 수 없으므로 *는 그것이 끝나는 날을 의미합니다.

누군가 명확히 할 수 있습니까?

답변1

일반적으로 *Weekday 열에 표시되는 요일은 이 작업의 일정과 관련이 없습니다. 이 작업은 매년 6월 10일에 수행됩니다. 만약 너라면했다요일에 대한 항목(예: "수요일")이 있는 경우 작업은 6월 10일과 6월 매주 수요일에 발생합니다. man 5 crontab어떤 시스템에서 작업을 예약하든 구현이 다를 수 있으므로 문의하는 것이 가장 좋습니다 cron.

또한 맨 페이지는 다음과 같이 모호하거나 읽기 어려울 수 있습니다.

분, 시, 월 필드가 현재 시간과 일치하고 두 날짜 필드(일 또는 요일) 중 하나 이상이 현재 시간과 일치하면 cron(8)에 의해 명령이 실행됩니다("참고" 참조). 아래에).

그리고:

참고: 명령이 실행되는 날짜는 날짜와 요일의 두 필드로 지정할 수 있습니다. 두 필드가 모두 제한된 경우(즉, *가 아님) 두 필드 중 하나가 현재 시간과 일치할 때 명령이 실행됩니다. 예를 들어, 30 4 1,15 * 5매월 1일과 15일, 그리고 매주 금요일 오전 4시 30분에 명령이 실행됩니다.

IMO, "두 필드가 모두 제한되는 경우" 제한이 실제로는더 적은한 필드는 제한되고 다른 필드는 와일드카드로 처리되는 경우와 비교하면 제한적입니다.

비교하다:

30 08 10 06 * /home/maverick/full-backup

위 작업은 6월 10일에만 수행됩니다.

30 08 * 6 Wed /home/maverick/full-backup

위 작업은 6월 매주 수요일에 진행됩니다.

30 08 10 06 Wed /home/maverick/full-backup

위 작업은 6월 매주 수요일과 6월 10일에 진행됩니다.

관련 정보