![매월 마지막 일요일에 실행되도록 cronjob을 설정하는 방법은 무엇입니까? [복사]](https://linux55.com/image/179925/%EB%A7%A4%EC%9B%94%20%EB%A7%88%EC%A7%80%EB%A7%89%20%EC%9D%BC%EC%9A%94%EC%9D%BC%EC%97%90%20%EC%8B%A4%ED%96%89%EB%90%98%EB%8F%84%EB%A1%9D%20cronjob%EC%9D%84%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
매달 마지막 일요일에 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