Cronjob在Debian上失败了

Ben*_*ier 1 cron jobs debian sh

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

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

该脚本如下所示:

#!/bin/sh
java -jar vorlesungsplaene.jar
Run Code Online (Sandbox Code Playgroud)

jar文件位于预期的同一目录中.

我定义了两个cronjobs:

# m h  dom mon dow   command
  30 * * * * /usr/src/stundenplan.sh
 0-59 * * * * echo "dude" >> /tmp/test.txt
Run Code Online (Sandbox Code Playgroud)

下面的工作运行正常,在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)
Run Code Online (Sandbox Code Playgroud)

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

Tee*_*kin 5

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

尝试做:

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

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

希望能帮助到你!