月末にだけ crontab で batch を実行するシェルスクリプトの書き方

月末にだけ crontab で batch を実行するシェルスクリプトの書き方をご紹介します。

Linux | リナックス

月末に特定の処理を実行するシェルスクリプト

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 で月末に処理を実行したい現場からお送りしました。

参考情報