2011年03月03日

crontab の % の話

JP の「郵便番号データ」は月末最終営業日の 17時過ぎ頃に更新されるらしいので、郵便番号辞書を sf.jp の cron で「月末最終日の 18時」に自動更新させようと思った時のお話。

まず、「月末最終日って、crontab にどう書けばいいんだ?」と思った。
これは検索したらすぐにたくさん見つかった。「28-31日に『翌日が 1日かどうか』を test してから実行すればいい」。おお、なるほど!


で、まず自分のマシンで確認しようとした。
crontab.png

あれ? 何か色が変だな? 何で「%」以降が同じ色になっちゃうんだ?

不思議に思いつつ、実行させて見たが、やはりエラーになる。

「端末で実行すると上手く行くのに何で?」と思って「man 5 crontab」してみたら、
コマンド中にパーセント記号 (%) がバックスラッシュ (\) によってエスケープされずに置かれていると、改行文字に置き換えられ、最初に現れた % 以降の全てのデータは標準入力としてコマンドに送られる。
なるほど…。

crontab2.png
エスケープしたら上手く行きました(クォートじゃダメなのね)。

ちなみに、sf.jp のシェルサーバの cron は、メールは何もしなくてもアカウント設定で設定したアドレスに飛ばしてくれる。「自分で設定しないとダメかな」と思ってたので、ありがたい。
posted by vagus at 00:55| 東京 ☀| Comment(0) | Linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。