분기별로, 두 번째 일요일 오전 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