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

标签 linux bash cron unrar

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

最佳答案

好吧,你已经说了你使用了绝对路径,所以第一个问题就解决了。

接下来要检查的是权限。 cron 作业以哪个用户身份运行?它是否具有所有必要的权限?

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

exec &>/tmp/my.log

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

set -x

这将使 bash 打印它将要执行的命令,以及嵌套级别。

调试愉快!

关于linux - 帮助调试具有正确脚本路径并在手动触发时工作的 cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3611812/

相关文章:

regex - 使用 Regex 识别文件名中两个不同子字符串中的任何一个?

linux - 查找在给定时间之间运行的 cron 作业

linux - 使用 Shell 删除所有早于 X 天的文件夹

bash - 捕获 "rm: fts_read: No such file or directory"错误并继续

linux - Linux下的Grep命令

linux - 如何在 sed 中指定 "or"

c++ - 如何使用来自不同目录的make文件中的文件

bash - awk 变量列表

node.js - 是否可以每 *4 分钟* 在 Heroku 中运行一个 Node.js 应用程序?

linux - 在 linux(ubuntu) 中更新到 Node 4.x 失败,没有错误,并保持 v0.10