CRON 데몬을 통해 매월 마지막일에 스크립트 실행하는 TIP 입니다.
/etc/crontab
더 좋은 방법도 있겠지만 제가 찾은 방법은 내일 혹은 오늘에 +1 을 더해서 나온값이 1이냐를 가지고 비교합니다.
마지막일 다음날은 1일부터 시작할테니깐요……
일 필드는 * 로 처리해도 조건문에서 매칭되지 않으면 실행되지 않으니 상관없으나…. 28일부터 31일까지만 스크립트 실행하게 처리해주는게 조금더 이뿌지 않을까 합니다.;;;
Example) 아래 방법중 맘에드는걸로~ ^^
55 23 28-31 * * [[ “$(date –date=tomorrow +\%d)” == “01” ]] && script.sh
55 23 28-31 * * [ `/bin/date -d +1day +\%d` -eq 1 ] && script.sh
55 23 28-31 * * [[ $(date +’%d’) -eq $(cal | awk ‘!/^$/{ print $NF }’ | sed ‘/^[[:space:]]*$/d’ | tail -1) ]] && script.sh
참고로….
※ 월에 마지막날 구하는 방법
# (cal | awk ‘!/^$/{ print $NF }’ | sed ‘/^[[:space:]]*$/d’ | tail -1 )
30
이번달(9월) 마지막일은 30일이네요