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: Permission denied ]。

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在从 shell 脚本运行 Java 时,您也可以更好地使用:

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