我创建了一个 shell 文件来从 .7z 中提取档案。shell 在终端中运行良好,但在 cronjob 中出现错误。
命令是:
7z x /path/to/file.7z -aoa
我收到的错误是:
/path/to/script.sh: line 2: 7z: command not found
我正在使用 .7z 文件的完整路径并检查了我的权限,所以我正在努力找出我做错了什么。
我将脚本更改为
#!/bin/bash
/usr/local/bin/7z x /path/to/file.7z -aoa
我现在得到
/bin/sh: /path/to/script.sh: Permission denied
我检查了脚本、文件和 7z 文件,所有权限都设置为读/写
好的..所以我通过在脚本上使用 chmod +x 修复了权限问题。
问题不是
.7z
文件的路径,而是可执行文件的路径7z
我猜这
7z
来自 HomeBrew 之类的东西,因此不在默认路径上,并且您的用户有一个.profile
或类似的条目,可将目录添加到 PATH env var。使用
which 7z
命令查找完整路径7z
并编辑脚本以使用该路径。将完整路径放在
7z
命令上。您遇到的问题是 cronjob 的 PATH 与您的 shell 不同。您可以找到7z
withcommand -v 7z
命令的完整路径。