특정 옵션에 대한 crontab 예약

특정 옵션에 대한 crontab 예약

분기별로, 두 번째 일요일 오전 2시에 실행되는 crontab 항목을 추가해야 합니다.

다음 중 옳은 것은 무엇입니까? 운영 체제는 AIX입니다.

00 02 8-14 */3 0  &&  /myscript.sh 

또는

00 02 8-14 */3 * [ "$(date '+\%a')" == "Sun" ]  &&  /myscript.sh

답변1

분, 시간, 월이 정확합니다.

요일과 월 사이에 상호작용이 있습니다. 첫 번째 버전은 8일부터 14일까지 매일 실행되며,그리고매주 일요일(단, 11일이 일요일인 경우 두 번은 안 됨)

에서 man -s 5 crontab:

참고: 명령이 실행되는 날짜는 날짜와 요일의 두 필드로 지정할 수 있습니다. 두 필드가 모두 제한된 경우(즉, *가 아님) 두 필드 중 하나가 현재 시간과 일치할 때 명령이 실행됩니다.

두 번째 버전에는 두 가지 문제가 있을 수 있습니다.

(1) /bin/sh 또는 crontab에 지정된 쉘로 실행할 수 있습니다. ==휴대성은 어떨지 모르겠네요 .

(2) "Sun"은 로캘별로 다릅니다.

나는 아마도 이것을 피할 것이지만 [ "$( date '+\%u')" -eq 7 ]주석을 사용하여 설명하십시오.

이로 인해

00 02 8-14 1,4,7,10 * [ "$(date '+\%u')" -eq 7 ] && /myscript.sh 

관련 정보