我正在使用open 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会出现“错误”。相当不伦不类,对吧?我检查了我的环境变量,没有什么花哨的。还有什么我可能会失踪的吗?关于从哪里去的任何想法?我有没有办法轻松地每天运行这个脚本?
答案 0 :(得分:0)
检查该文件的执行权限。
cron运行时具有不同的权限,而不是登录时获得的权限。
您也尝试访问/ root。 尝试将您的脚本重新定位到另一个"非root" 。目录
答案 1 :(得分:0)
通过评论当前的/usr/bin/java ..
并在一行中插入set
来查看crontab的环境。
现在从命令行执行set > tmpEnvVarList.txt
并与log.txt中的内容进行比较。
几乎可以肯定你的.profile或.bash_rc(或其他)正在设置crontab无法使用的env变量。您需要在脚本中添加. .profile
等。
cbO的想法也很好。
我希望这会有所帮助。