0

crontabから呼び出された単純なJavaプログラムを実行したいと思います。crontabが正しく実行されているかどうかを知りたいので、結果をログファイルとして出力したいと思います。

今のところ、crontabがJavaプログラムを正しく実行しているかどうかはわかりません。

サンプルJavaプログラム:

public static void main(String[] args) {
    Calendar c = Calendar.getInstance();
    System.out.println("hello" + c.getTime());
}

サンプルsh:

#!/bin/bash
JAVA_HOME=/usr/java/jre1.6.0_31/
export JAVA_HOME;


for file in /home/vas/servers/tomcat/myTest.jar
do
       CLASSPATH=$file:$CLASSPATH
done
export CLASSPATH

$JAVA_HOME/bin/java myTest

Crontab:

* * * * * /home/vas/servers/tomcat/myTest.sh > /home/vas/servers/tomcat/myTest.log 2>&1

PS:myTest.java、myTest.shはすべて/ home / vas / servers /tomcat/の下にあります

編集:家の前に/を含める。

================================================== =======

これでログファイルが表示されますが、[/ bin / sh:/home/vas/servers/tomcat/myTest.sh:アクセスが拒否されました]と表示されていました。

4

2 に答える 2

3

ログファイルを上書きする方法は次のとおりです。

* * * * * /home/vas/servers/tomcat/myTest.sh > home/vas/servers/tomcat/myTest.log

vsログファイルに追加する方法:

* * * * * /home/vas/servers/tomcat/myTest.sh >> /home/vas/servers/tomcat/myTest.log

(あなたのコメントに基づいて編集してください)

あなたはこのようなことを試すことができますか?

chmod 771 /home/vas/servers/tomcat/myTest.sh

次に、ls -al /home/vas/servers/tomcat/myTest.sh権限が正しく設定されていることを確認してください。

于 2013-02-28T07:27:21.283 に答える
0

crontabでに変更>>>、絶対パスを使用して次のようにファイルをログに記録します。

* * * * * /home/vas/servers/tomcat/myTest.sh >> /home/vas/servers/tomcat/myTest.log 2>&1

またexec、シェルスクリプトからJavaを実行する場合は、次のように使用することをお勧めします。

exec $JAVA_HOME/bin/java myTest
于 2013-02-28T07:27:04.947 に答える