crontab
으로 매달 마지막 날을 지정하는 법에 대해 생각해보신 적이 있나요?
월마다 마지막 날은 30
, 31
등이 있을 수 있어 고정적이지 않습니다.
crontab
을 사용할 때 매달 마지막 날에 실행되도록 하려면 어떻게 해야 할까요?
먼저 crontab
편집창을 열고
$ crontab -e
아래와 같이 작성하면 됩니다.
00 12 * * * [ $(date +\%d -d tomorrow) = 01 ] && <실행하고 싶은 스크립트 파일>
코드 리뷰
date +\%d -d tomorrow
: 내일의일
을 나타냅니다.$ date Wed 27 Apr 2022 06:40:14 AM UTC $ date +%d -d tomorrow 28
- 즉, 내일이
1
일이라면 스크립트 파일을 실행하라는 의미입니다.
echo
명령어는 crontab
으로 실행했을 때 모니터로 출력되지 않습니다.
따라서 리다이렉션을 해주어 결과를 확인해야 합니다.
28 ~ 31일 사이에만 실행되게 설정하면 조금 더 최적화 되겠네요