[linux]月末にcronを実行する


[まとめ] 現在開催中のKindleセール情報はこちら

月末に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 && 実行したいコマンド

勉強になりました。

参考

[まとめ] 現在開催中のKindleセール情報はこちら