Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

crontabで「コマンド置 換」は行えないのでしょうか?

289 views
Skip to first unread message

SATO Hiroyuki

unread,
Jun 29, 2004, 10:22:36 PM6/29/04
to linux...@linux.or.jp
こんにちは。佐藤と申します。

 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>

Yamada Kazuo

unread,
Jun 29, 2004, 11:18:19 PM6/29/04
to linux...@linux.or.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/


L.Takashi ISHIOKA

unread,
Jun 29, 2004, 11:48:09 PM6/29/04
to
>> On Wed, 30 Jun 2004 11:22:36 +0900, SATO Hiroyuki <hiro...@navitime.co.jp> said:

SATO> 0 0 * * * echo Today is `date +%Y%m%d`. >> ~/today.log

ちゃんと見てないが, その環境で man 5 crontab すると % が特別扱いされる
ことがわかりませんか?
# ちがう cron だと そういう動作しないのもある(というかむかしはこれが
# ふつうなような)

というわけでちゃんと読んでみて,僕にも教えて下さい.
--
(ishi)

SATO Hiroyuki

unread,
Jun 30, 2004, 1:05:28 AM6/30/04
to
佐藤です。皆様、ご返信ありがとうございます。

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>

L.Takashi ISHIOKA

unread,
Jun 30, 2004, 1:19:13 AM6/30/04
to linux...@linux.or.jp
ヨタです... 実は知らなかった人.
普段は script にかいて 動くの確認してから それを指定ってしてる.

>> 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) なんで + までしかないんだぁってね...(^^;

0 new messages