帮助调试具有正确脚本路径的cron作业,并在手动触发时工作

ken*_*y99 1 linux bash cron unrar

我正在努力尝试调试一个无法正常工作的cron作业.cron作业调用一个shell脚本,该脚本应该是一个rar文件 - 当我手动运行脚本时这可以正常工作,但由于某种原因,它不能通过cron工作.我正在使用绝对文件路径并验证路径是否正确.有没有人有任何想法为什么会发生这种情况?

Dar*_*ust 17

好吧,你已经说过你已经使用了绝对路径,所以1号问题已经解决了.

检查旁边是权限.哪个用户是cron作业?他是否拥有所有必要的权限?

然后,一个小技巧:如果你有一个shell脚本失败并且它没有在终端中运行,我喜欢将它的输出重定向到一些文件.在脚本开头,添加:

exec &>/tmp/my.log
Run Code Online (Sandbox Code Playgroud)

这会将STDOUT和STDERR重定向到/tmp/my.log.那么添加行也可能是个好主意:

set -x
Run Code Online (Sandbox Code Playgroud)

这将使bash打印命令它将执行,以及在什么嵌套级别.

快乐的调试!

  • IMO,这应该被标记为已接受的答案. (9认同)