以一般使用者登錄進來執行的script的環境變數和crontab的環境變數是不一樣的:
$ cat /etc/crontab
...
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
因此常常會造成明明可以手動執行的script卻無法以crontab執行, 因為crontab依照自己的環境變數是找不到您的程式的. 因此可以在你的script中的每一個命令或程式都寫出全路徑, 或者在script的開頭重定義環境變數, 如PATH等, 另外, 在script中定義出環境變數也是個好習慣.
錯誤是個很籠統而不具體,
需要把那錯誤的訊息貼出,
才知那錯誤是什麼。
先推測可能的情況:
1.確認該檔可被執行:
基本上該 script 的開頭應是:
<pre class="c" name="code">#!/bin/sh
且應 chmod +x 使之可被執行。
2.執行目錄的問題:
手動可執行,
可能是因為就在該目錄執行的關係,
而cron執行會錯誤是因為沒在該目錄的關係,
所以在 script 裡,要
<pre class="c" name="code">cd /某目錄
執行某些動作