- - PR -
crontabで実行できません
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-09-07 14:30
bash > /root/crontab/csv.bat > /root/crontab/log/`date +'%Y%m%d'`.log
のコマンドは正常に処理できますが、これをcrontab -e で 49 13 * * * /root/crontab/csv.bat > /root/crontab/log/`date +'%Y%m%d'`.log を記述すると、うまく実行できません。 問題の記述は`date +'%Y%m%d'`にあることは判りましたが、どのようにすればいいのか 解決方法がみつかりません。どなたか教えていただけませんでしょうか? | ||||
|
投稿日時: 2005-09-07 15:37
こんにちは。
man 5 crontab をどうぞ。
ということで、% は \% というようにエスケープしましょう。 | ||||
|
投稿日時: 2005-09-07 15:50
angelさんありがとうございました。
% -> \% に変更すると動作しました。ただ、file名が \2005\09\07.log になりますね。 このファイル名は、これ以上どうにもならないのかな・・・? | ||||
|
投稿日時: 2005-09-07 16:20
…本当ですね。
% → 改行 \% → \% という変換になるので、素の % はひょっとして使えない…?? それが仕様だとすると、非常に間抜けな気がします。 一応、今回の例であれば、 `date +'%Y%m%d'` → `date +\%Y\%m\%d` というようにシングルクォートを省けば、コマンド実行時にシェルが \% → % の変換を行って、上手くはいくようですが。 ※勿論、複雑なコマンドは直接 crontab に書かず、シェルスクリプトに収めてしまっても良いわけですが。 以上、ご参考まで。 | ||||
|
投稿日時: 2005-09-07 17:01
がると申します。
んっと。私の場合、まず
とかってバッチファイルを作ります。 例えばこれを /root/crontab/aaa.sh とします。 あとは 49 13 * * * /root/crontab/aaa.sh 1>/dev/null 2>/dev/null とかってやればOKです。 あ、標準出力&エラーを/dev/nullに叩き込むかどうかは 各自ご判断をお願いいたします :-P | ||||
|
投稿日時: 2005-09-07 17:46
angelさん、がるがるさんありがとうございました。
シングルクォートを省けばファイル名できました。 バッチファイルのバッチファイルは既にやりましたが、ただ、どうしても、この部分が 納得いかなかったので、どうやったらできるのかと思い質問しました。 たいへん参考になりました。ありがとうございました。 |
1