こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

クーロンでシェル実行、JAVAコマンドが動かない・・

クーロンにて、シェルを自動起動し、JAVAコマンドを動かそうとしています。

cron → abc.sh実行
└def.sh実行
└JAVAコマンド実行
という位置付けです。

まず、
0 3 * * * sh /usr/src/sh/abc.sh
という設定にてクーロンを自動実行しようとしました。abc.shの内容はこうです。
#!bin/sh
/bin/sh /usr/src/sh/def.sh> /log/def.txt

def.txtというテキストは生成されるのですが、def.shが実行されていません。。
def.shの中身はjavaコマンドで、

java aaa.bbb.ccc.ddd/conf/repair.properties

というものです。

また、念のため、クーロンに直接
0 3 * * * /bin/sh /usr/src/sh/def.sh
ともやってみましたが、結果は同じでした。
どうすればdef.shがちゃんと実行されるでしょうか?
そもそもjavaコマンドをクーロンですることはできないのでしょうか?

投稿日時 - 2003-09-07 04:03:35

QNo.648473

暇なときに回答ください

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

cronから本当に直接

0 3 * * * java aaa.bbb.ccc.ddd/conf/repair.properties > /log/def.txt

これでどうでしょうか?


ちなみに、abc.shの中でたとえば

exec >/tmp/abc.log 2>&1
set -xv

というのをいれておくと、どのように実行されたのかをファイルに記録することができます。ご活用ください。

投稿日時 - 2003-09-07 18:35:48

補足

昨日はご回答ありがとうございました。今日、早速ご紹介いただいた方法をやってみましたが、やはりだめでした。。

どうも、クーロンで実行する際は、クラスパスを定義しないといけないという話を聞き、shellの中で、以下のようにクラスパスの部分を追記しました。

#!/bin/sh
##以下2行追記##
CLASSPATH=/opt/abcdefg/abc:/opt/defghij/services/abc/def
export CLASSPATH
##追記はここまで##
java aaa.bbb.ccc.ddd/conf/repair.properties

クラスパスは、envでたたいたあとでてきたCLASSPATHの記述をそのまま漏れなく記述しました。

そのあと、クーロンで実行したところ、
以下のようなエラーがクーロンのログででました。(abc.shはJAVAを実行するための親シェル)

> CMD: sh /usr/local/sh/4/abc.sh
> root 17553 c (月) 9月 8 17:24:00 2003
< root 17553 c (月) 9月 8 17:24:02 2003 rc=1

rc=1は明らかに環境変数のエラーだそうです。
他に環境変数で何か足りないのでしょうか??さっぱりです。。。
もしご存知でしたら、で結構です。何かヒントでもあればぜひお願いします。

投稿日時 - 2003-09-08 23:29:30

お礼

なるほど。その手がありました。明日、やってみて、また報告させていただきます。また、abc.shのなかにexecを入れる方法もやってみようと思います。
ご回答ありがとうございました!

投稿日時 - 2003-09-08 00:01:13

ANo.1

こんばんは。シェルスクリプトの1行目は

>#!bin/sh

ではなく

#!/bin/sh

としなくてはなりません。変更の上再度お試し下さい。

投稿日時 - 2003-09-07 04:23:42

お礼

ご回答ありがとうございます。すいません、これは質問時の誤りです。ご指摘いただいたようにスラッシュは入れていました。正しく書かず、申し訳ございませんでした。そしてご指摘ありがとうございました。以後気をつけます。

投稿日時 - 2003-09-07 23:59:06

あなたにオススメの質問