by shigemk2

当面は技術的なことしか書かない

crontabで月末を指定する

cron(crontab)で月末を指定する方法 - ぎじゅっやさん

これそのまんまだけども、

55 23 28-31 * * /usr/bin/test $( date -d '+1 day' +%d ) -eq 1 && /path/to/script

このcronの要点は、

  1. 毎月28-31日の23時55分にこのcronを実行する
  2. testコマンドを実行して、当日+1日 が1日かどうかを確認する
  3. testコマンドの終了コードが0つまり、翌日が1日ならばスクリプトを実行する

というところでしょうか。

if 文と test コマンド - UNIX & Linux コマンド・シェルスクリプト リファレンス
testは、条件式の終了ステータス0か1のみを返す。

test 数値1 -eq 数値2

1つ目のコマンドが成功したなら次のコマンドを実行する。
シェル・スクリプト・リファレンス - 【 AND演算子「&&」 】:ITpro