月末にだけ crontab で batch を実行するシェルスクリプトの書き方をご紹介します。
if /usr/bin/test $( date -d '+1 day' +\\%d ) -eq 1
then
echo "1st day of the month"
fi
月末の午前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 で月末に処理を実行したい現場からお送りしました。