まず、「月末最終日って、crontab にどう書けばいいんだ?」と思った。
これは検索したらすぐにたくさん見つかった。「28-31日に『翌日が 1日かどうか』を test してから実行すればいい」。おお、なるほど!
で、まず自分のマシンで確認しようとした。
あれ? 何か色が変だな? 何で「%」以降が同じ色になっちゃうんだ?
不思議に思いつつ、実行させて見たが、やはりエラーになる。
「端末で実行すると上手く行くのに何で?」と思って「man 5 crontab」してみたら、
コマンド中にパーセント記号 (%) がバックスラッシュ (\) によってエスケープされずに置かれていると、改行文字に置き換えられ、最初に現れた % 以降の全てのデータは標準入力としてコマンドに送られる。なるほど…。
エスケープしたら上手く行きました(クォートじゃダメなのね)。
ちなみに、sf.jp のシェルサーバの cron は、メールは何もしなくてもアカウント設定で設定したアドレスに飛ばしてくれる。「自分で設定しないとダメかな」と思ってたので、ありがたい。