[linux]月末にcronを実行する
月末にcronを実行したいと思いcrontabに設定を書こうとしたところ、月初のように単純には書けないことに気づきました。
月初だと以下のように「毎月1日に」と書けばいいのですが、
0 0 1 * * 実行したいコマンド
月末は30日の場合もあるし2月はうるう年も考慮する必要があります。
調べてみたことろ、testコマンドとdateコマンドを組み合わせて「28日から31日の間で翌日が1日だったら実行する」という設定を書けばいいみたいですね。
0 0 28-31 * * /usr/bin/test $(date -d '+1 day' +%d) -eq 1 && 実行したいコマンド
勉強になりました。