crontabで「コマンド置換」は行えないのでしょうか?例えば次
のように書いた場合、cronはコマンドを実行してくれませんが、そ
の理由がわかりません。
0 0 * * * echo Today is `date +%Y%m%d`. >> ~/today.log
よろしくお願い致します。
$ rpm -qa | grep cron
crontabs-1.10-4
vixie-cron-3.0.1-69
anacron-2.3-23
--------
SATO Hiroyuki <hiro...@navitime.co.jp>
On Wed, 30 Jun 2004 11:22:36 +0900
SATO Hiroyuki <hiro...@navitime.co.jp> wrote:
> crontabで「コマンド置換」は行えないのでしょうか?例えば次
> のように書いた場合、cronはコマンドを実行してくれませんが、そ
> の理由がわかりません。
>
> 0 0 * * * echo Today is `date +%Y%m%d`. >> ~/today.log
1.echoとかdateへの「パス」がcron実行時に通っていない
2.echoとかdateとかのコマンドがインストールされていない(多分これは無し)
コマンドを絶対パスで指定する事と、確実に動かされたいのであれば、シェルスク
リプトを作ってそれをcronで呼び出す様にした方が良いのではないでしょうか。
# cronで実行する場合、環境変数などがセットされない場合があり。
# 通常のログインした環境下と同じように動かない事があります。
--
0----+----1----+----2----+----3----+----4----+----5----+----6----+----7----#
山田 和雄 MailTo:yam...@sampoji.or.jp
Yamada Kazuo HomePage:http://shadow.sampoji.jp/
SATO> 0 0 * * * echo Today is `date +%Y%m%d`. >> ~/today.log
ちゃんと見てないが, その環境で man 5 crontab すると % が特別扱いされる
ことがわかりませんか?
# ちがう cron だと そういう動作しないのもある(というかむかしはこれが
# ふつうなような)
というわけでちゃんと読んでみて,僕にも教えて下さい.
--
(ishi)
From: "L.Takashi ISHIOKA" <ish...@dad.eec.toshiba.co.jp>
> ちゃんと見てないが, その環境で man 5 crontab すると % が特別扱いされる
> ことがわかりませんか?
man crontab しか見ていませんでした。
# ああ、しまったなあ。(恥)
man 5 crontab
---- [start] quotation ----
「第 6」フィールド (行の残りの部分) には実行されるコマン
ドを指定する。その行のコマンド部 (改行文字または % 文字
まで) が /bin/sh (または そ のcrontab ファイルの SHELL
環境変数で指定されたシェル) によって実行される。コマンド
中にパーセント記号 (%) がバックスラッシュ (\) によってエ
スケープされずに置かれていると、改行文字に置き換えられ、
最初に現れた % 以降の全てのデータは標準入力としてコマン
ドに送られる。
---- [ end ] quotation ----
以下のように書いたところ期待通りに動きました。
0 * * * * echo Today is `date +\%Y\%m\%d`. >> ~/today.log
私のうっかりミスにお手間を取らせてしまい、失礼致しました。
--------
SATO Hiroyuki <hiro...@navitime.co.jp>
>> On Wed, 30 Jun 2004 14:05:28 +0900, SATO Hiroyuki <hiro...@navitime.co.jp> said:
SATO> 0 * * * * echo Today is `date +\%Y\%m\%d`. >> ~/today.log
ちなみに,
/var/log/cron あたりの log を見るまで気がつかなかったのは内緒ですよっ.
1. フルパスで書いて
2. log みて
3. man みて...
と いつもの通りの遠回り:-)
--
(ishi) なんで + までしかないんだぁってね...(^^;