プロが教える店舗&オフィスのセキュリティ対策術

RedHat8.0です。

あるユーザで、
[/etc]$ crontab -e
を実行し、
---------------------------------------
SHELL=/bin/csh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/bat
HOME=/home/user
#
0 0-23 * * 1-5 /bat/sync.csh p1 p2 p3
---------------------------------------
 :

のような設定をしているのですが、
毎時00分の実行が行われません。

試しに、

0-59/1 0-23 * * 1-5 /bat/sync.csh p1 p2 p3

のように書いて、しばらく様子をみていましたが、
毎分ごとの起動もされませんでした。

「crontab: installing new crontab」のメッセージも返って来ています。

/bat/sync.csh には、実行権はついており、
単独で走らせると
$ /bat/sync.csh p1 p2 p3


動作します。
(p1, p2, p3 は引数を表現しています)

更に、

[/etc]$ ps -aux

root 489 0.0 0.0 1520 644 ? S Jan28 0:00 crond

root 21138 0.0 0.0 1520 672 ? S 23:20 0:00 CROND
  :
などになっています。

何か、他の設定が必要なのでしょうか。
よろしくお願いします。

A 回答 (3件)

環境変数 HOSTNAME が定義されていないからですね。


cshでは未定義環境変数を参照するとエラーです。

crontab 環境ではほとんどの環境変数が定義されません。crontabファイル中で、PATH等を定義されていたのでそのあたりはご存知かと思っていました。
HOMEと、SHELL=/bin/sh PATH=/usr/bin:/bin くらいだったかな。
    • good
    • 0
この回答へのお礼

何度もありがとうございました。
見よう見まねで書いていたスクリプトのため、

>> crontab 環境ではほとんどの環境変数が定義されません。

ということが分かりませんでした。
勉強になりました。ありがとうございました。

お礼日時:2006/03/08 08:33

>このcronファイルの中には、先ほどのuserの実行結果がrootの結果とともに刻一刻と入っていました。



ログに残っているということは実行されているのでは?

>それでも、userでバッチが動いていない理由とすると・・・

動いていないと判断した理由は何ですか?
ls -lu /bat/sync.csh
で、参照タイムスタンプをみるとどうなってますか?
    • good
    • 0
この回答へのお礼

夜遅くにありがとうございました。
いろいろと試してみて、解決できました。

ls -lu では、そのバッチの参照タイムスタンプは随時更新されていっていました。

もともと動いていないと判断したのは、そのsync.batの中で
ログファイルを吐き出させるようにしていたためなのですが、そのログファイル名、

#!/bin/csh -f
:
set me=$0
set LOG="/tmp/$me:t.$HOSTNAME.log"

のようにしているところがあり、
この"set LOG"の行でNG(その行から後ろが実行されていない)になっていました。

コマンドラインから実行した場合には上手く動いていたのですが、cronから呼び出すと動かなかったようです。

set LOG="/tmp/$me:t."`hostname`".log"

こんな風に書き換えることで、crontabの設定からでも
動きました。

初歩的なことでお騒がせしました。
明確な理由は分からないですが、とりあえず動きました。
ありがとうございました。

お礼日時:2006/03/08 01:36

ログは正常にのこっていますか?


rootでcronを登録してちゃんとうごきますか?

この回答への補足

夜遅くにありがとうございます。
rootユーザでは同じようにcron設定すると動きました。
ログが残っている場所はどこでしょう?

補足日時:2006/03/08 00:35
    • good
    • 0
この回答へのお礼

すみません、ログの場所は、
root[/var/log] ls -l cron*
-rw------- 1 root root 32059 3月 8 00:49 cron
-rw------- 1 root root 24955 3月 5 04:02 cron.1

ですね。

このcronファイルの中には、先ほどのuserの実行結果がrootの結果とともに刻一刻と入っていました。

それでも、userでバッチが動いていない理由とすると・・・

お礼日時:2006/03/08 00:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!