Cronjob在Debian上失败了

时间:2012-07-18 15:22:47

标签: cron debian sh jobs

我不知道为什么我的cronjob没有被执行。以下是详细信息:

我在/ usr / src中有一个名为stundenplan.sh的脚本,它执行一个jar文件。 如果从控制台运行脚本本身,则脚本本身可以正常工作。 但试图从cronjob运行它不起作用。

脚本如下所示:

#!/bin/sh
java -jar vorlesungsplaene.jar

jar文件与预期位于同一目录中。

我定义了两个cronjobs:

# m h  dom mon dow   command
  30 * * * * /usr/src/stundenplan.sh
 0-59 * * * * echo "dude" >> /tmp/test.txt

下面的工作运作正常,在test.txt文件中精心编写“dude”。

正如您在syslog中看到的那样,上面的工作失败了:

Jul 18 15:29:01 vps47327 /USR/SBIN/CRON[16361]: (root) CMD (echo "dude" >> /tmp/test.txt)
Jul 18 15:30:01 vps47327 /USR/SBIN/CRON[16364]: (root) CMD (/usr/src/stundenplan.sh)
Jul 18 15:30:01 vps47327 /USR/SBIN/CRON[16365]: (root) CMD (echo "dude" >> /tmp/test.txt)
Jul 18 15:30:01 vps47327 /USR/SBIN/CRON[16363]: (CRON) error (grandchild #16364 failed with exit status 1)

任何建议,想法或解决方案? ;)

1 个答案:

答案 0 :(得分:5)

它看起来像路径问题。 Crontab可能正在从某个任意目录运行,因此无法找到jar文件。

尝试做:

30 * * * * cd /usr/src && ./stundenplan.sh

这不是最漂亮的方式,但如果它有效,那么至少你知道问题是什么。将jar文件的完整路径放在脚本中可能会更优雅,但我会把这个问题留给你。 :)

希望它有所帮助!