매월 마지막 일요일에 실행되도록 cronjob을 설정하는 방법은 무엇입니까? [복사]

매월 마지막 일요일에 실행되도록 cronjob을 설정하는 방법은 무엇입니까? [복사]

매달 마지막 일요일에 cronjob을 실행하도록 설정하려고 합니다. 이것이 내가 달성한 것입니다.

현재 매주 일요일 밤 10시에 방송되고 있다.

0 22 * * 0 /usr/basys_bin/clean_cups_cache.sh

답변1

스크립트 상단에서 또는 별도의 스크립트로 해당 월의 마지막 주에만 실행되도록 안전 조치를 설정할 수 있습니다.

예를 들어 다음과 같이 만듭니다./usr/local/bin/lastweekofmonth

#!/bin/bash
# Exit 0 ("OK") iff we are in the last seven days of a month
#
today=$(date +%d)                             # Day number today
nextweek=$(date --date 'now + 7 days' +%d)    # Day number next week

[[ ${today#0} -gt ${nextweek#0} ]]            # Implicit exit "OK" if today > next week

실행 가능하도록 만드십시오( chmod +x /usr/local/bin/lastweekofmonth).

crontab그런 다음 항목에 사용할 수 있습니다

0 22 * * 0 /usr/local/bin/lastweekofmonth && /usr/basys_bin/clean_cups_cache.sh

관련 정보