如何更改 OSX Leopard 的 cron shell

如何更改 OSX Leopard 的 cron shell

我有一個腳本,如果我使用 Bash 從命令列調用它,它可以正常運行。但是當 cron 嘗試運行它時,它會失敗並出現“mysql:命令未找到”錯誤。

我認為這是因為 cron 沒有使用 bash 作為 shell,但我不知道如何讓 cron 使用 bash。

我嘗試將其添加到腳本的頂部:

#!/bin/bash

但沒有喜悅。如何強制 cron 使用 bash 作為 shell?我對 bash 和 cron 不太熟悉,所以我可能會錯過一些簡單的東西。我閱讀了幾篇伺服器故障帖子(可以連結到所有帖子,但我不能,新用戶)並嘗試盡我所能地理解和應用這些信息,再加上谷歌搜索大量內容,但我被卡住了。

答案1

Pulegium 是對的,問題不在於 shell 的類型,而在於 PATH。當 cron 運行時,它的搜尋路徑非常有限,您應該輸入可執行檔的實際路徑,而不是mysql輸入命令。/path/to/mysql通常類似於/usr/local/bin/mysql.您必須搜索它才能找到確切的路徑。另外,如果是 shell 問題,您可以在 cron 檔案中執行 bash,然後執行腳本:/bin/bash /path/to/script.sh,這將確保 bash 是處理該檔案的那個。

答案2

最好在 cron 腳本中使用指令的絕對路徑。這樣您就不會依賴任何您可能自訂的 PATH 設定。

相關內容