Mac-Osx
.sh 在終端上工作,但不在 cronjob 上
我創建了一個 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
命令的完整路徑。