cron 環境變數

cron 環境變數

我正在運行一個簡單的 shell 腳本,該腳本在 的登入 shell 中運行良好cron,但它不運行。由於某種原因,在 shell 中運行時/usr/local/bin不在使用者路徑上運行。cron

確定的環境在哪裡cron

答案1

通常,從為 建立的非登入環境/bin/sh,這是預設用於執行該命令的環境。

在大多數版本中,您可以在 crontab 中設定其他環境變量,如下:

PATH=/usr/local/bin:/usr/bin:/bin
@reboot whatever

檢查crontab(5)詳情;man 5 crontab

答案2

檢查您的腳本使用的是哪個 shell。

crontab 的 shell 和變數在 /etc/crontab 中指定

x@x:~$ cat /etc/crontab 

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

sh 使用的設定檔位於使用者 home 中。

x@x:~$ ls ~/.profile 
/home/x/.profile

您可以在此文件末尾新增 PATH 變數(確保您已新增至正確使用者的設定檔中)

PATH="$PATH:/usr/local/bin"

或者您可以在自己的腳本中新增同一行。

相關內容