| ブログ - 最新エントリ |
最新エントリ配信 |
最新エントリ
2006/06/20
|
カテゴリ: Miscellaneous :
執筆者: unix (4:36 pm)
|
crontabに 0 * * * * /bin/date "+%m/%d %H:%M" >> file_name.log のようなものを登録すると /bin/date + しか実行されないというのでなぜか?! と聞かれた。 普通にsh上でもbash上でも全く問題ない。 そこでcrontabのmanをみると・・・ コマンド中にパーセント記号 (%) がバックスラッシュ () によってエスケープされずに置かれていると、改行文字に置き換えられ、最初に現れた % 以降の全てのデータは標準入力としてコマンドに送られる。 ということで%は改行に変換されるわけで、「/bin/date +」までしか実行されていなかった。 つまりman通りだと 0 * * * * /bin/date "+¥%m/¥%d ¥%H:¥%M" >> file_name.log ※¥はブログ上なんで表示されるように全角で 書いてますが実際は半角です。(半角ではブログ上表示されないので) として%文字をすべてでエスケープしないといけないのだ。 これほど長くunix触っていたのに知らなかった。 っていうかcronにはシェルで登録しましょ!!! って思う今日この頃(≧∇≦)/ |











