月末にだけ crontab で batch を実行するシェルスクリプトの書き方
月末にだけ crontab で batch を実行するシェルスクリプトの書き方をご紹介します。
月末に特定の処理を実行するシェルスクリプト
if /usr/bin/test $( date -d '+1 day' +\%d ) -eq 1 then echo "1st day of the month" fi |
月末のみ実行する crontab の書き方
月末の午前3時に /path/to/script.sh というシェルスクリプトを実行する crontab のサンプルコードは以下のとおりです。
0 3 28-31 * * /usr/bin/test $(date -d '+1 day' +\%d) -eq 1 && /path/to/script.sh >> /path/to/your.log 2>&1 |
月末の日付は 28-31 までのいずれかのみなので、これらの日付のときに cron 実行されるのですが
以上、cron で月末に処理を実行したい現場からお送りしました。
参考情報
- 月末にだけcronでbatchを叩きたい場合 && /dev/null や 2>&1 について – Qiita
- if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス