Mac-Osx

.sh 在終端上工作,但不在 cronjob 上

  • September 15, 2020

我創建了一個 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 不同。您可以找到7zwithcommand -v 7z命令的完整路徑。

引用自:https://serverfault.com/questions/1034029