0

我正在运行带有开放 jdk 和 crontab 的 Ubuntu 10.10。我制作了一个简洁的 Java 应用程序,它做了一些很酷的事情并将其导出为可运行的 jar 文件。我可以从命令行运行它就好了,但我需要每天运行一次文件的东西。所以我写了一个 cron 作业来运行一个实际上会调用 jar 文件的 shell 脚本。shell 脚本在单独运行时工作正常,它看起来像这样:

#!/bin/sh
/usr/bin/java -jar /root/proj/CoolStuff.jar

完美运行。所以我将它添加到 crontab 中:

23 14 * * * /root/proj/runScript.sh > /root/proj/log.txt 2>&1

这并不完美。事实上,它并没有运行。log.txt 会出来说“错误”。很不起眼,对吧?我检查了我的环境变量,没有什么特别的。还有什么我可能会丢失的吗?关于从这里去哪里的任何想法?有什么方法可以让我每天轻松地运行这个脚本?

4

2 回答 2

0

/usr/bin/java ..通过注释掉当前的并单独插入set一行来查看 crontab 的环境是什么样的。

现在从您的命令行执行set > tmpEnvVarList.txt并与您在 log.txt 中看到的内容进行比较。

几乎可以肯定,您的 .profile 或 .bash_rc (或其他)正在设置您 crontab 无法使用的环境变量。您需要在. .profile脚本中添加等。

cbO的想法也不错。

我希望这有帮助。

于 2012-05-04T18:45:33.803 回答
0

检查该文件的执行权限。

cron 以不同的权限运行,而不是您登录时获得的权限。

你也尝试访问/root。尝试将您的脚本重新定位到另一个“非根”目录。

于 2012-05-04T18:41:56.023 回答