0 0 * * * /usr/bin/test $( date -d '+1 day' +\%d ) -eq 1 && /home/hoge/cron/foo.sh
↑で、毎月月末日の零時にfoo.shが実行されるようになります。
####testコマンド
条件式を評価して、真(0)偽(1)を終了ステータスとして返す
date -d '+1 day' +%d のコマンドの実行結果(翌日の日付)と1 を比較する
例えば、今日は7日なので…$?を出力して条件式の評価をみてみる
test $( date -d '+1 day' +\%d ) -eq 1; echo $?;
=>1
明日は1日ではないので、偽
test $( date -d '+1 day' +\%d ) -eq 8; echo $?;
=>0
明日は8日でなので、真
####&&
一つめのコマンドが正常終了した場合に2つめのコマンドを実行する
testコマンドのステータスが真(0)になる場合のみ、/home/hoge/cron/foo.sh が実行される
testコマンドに渡す条件式を工夫すれば、もっと色々できそうですね