インフラ系SEの技術メモ

雑なエンジニアが低信頼性のメモを書いています。参考程度にとどめてください。

(Linux/cron)月末にのみ実行するcrontabの書き方

結論

0 0 28-31 * * /usr/bin/test $(date -d '+1 day' +%d) -eq 1 && hoge.sh

なぜそれで動くのか?

# date -d '+1 day' +%d
23
# date
Sat May 22 02:59:45 UTC 2021

要は日付を1日たして日付情報だけを抜き出しています。
この値が1の時だけ後続のコマンドを実行するんですね。

これができるなら月初めや年末もできそう。