크론 계획을 작성하는 데 도움을 받을 수 있나요? 일정은 다음 위치에서 명령을 실행해야 합니다.
- 매월 첫째주 마지막 2일
- 매월 셋째주 마지막 2일
답변1
ISO 8601연도의 첫 번째 주를 1월 4일을 포함하는 주로 또는 >= 설날 4일을 포함하는 주로 정의합니다(또한 월요일에 시작하는 주를 정의하므로 두 정의는 동일합니다). "매월 첫 번째 주"에 대한 구체적인 정의가 없으므로 동일한 "월은 >= 4일" 규칙을 적용할 것을 제안합니다.
Cron은 이를 모르고 "월의 첫 번째 주" 또는 "월의 세 번째 주"에 대한 개념이 없기 때문에 이는 직접적으로 도움이 되지 않습니다. 당신이 할 수 있는 일은 지난 이틀 동안 스크립트를 실행하는 것입니다.각일주일에
0 1 * * 6,7 /path/to/my/script
그런 다음 날짜 기반 계산을 수행하여("매월 첫 번째 주" 정의에 따라) 스크립트가 즉시 종료되어야 하는지 아니면 실제로 실행되어야 하는지 결정합니다.
위의 ">= 4일" 규칙을 사용하면 /bin/sh에서 다음과 같은 것을 사용할 수 있습니다.
d=$(date +%d)
if [ "$d" -ge 3 ] && [ "$d" -le 10 ]; then
# 1st week
elif [ "$d" -ge 17 ] && [ "$d" -le 24 ]; then
# 3rd week
else
exit
fi