iT邦幫忙

0

crontab 錯誤

各位先進大家好

目前遇到個問題,我在我的HOME下面建立一支sh,我可以手動執行,每次也都執行成功
,但是我透過自己的crontab來去執行這支sh,卻一直出現錯誤.
cron是有另外需要特別注意甚麼的嗎?

我的OS是CentOS 5.4

感恩

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
8
bizpro
iT邦大師 1 級 ‧ 2011-07-07 15:50:37
最佳解答

以一般使用者登錄進來執行的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中定義出環境變數也是個好習慣.

2
逮丸逮丸
iT邦大師 1 級 ‧ 2011-07-07 15:08:09

錯誤是個很籠統而不具體,
需要把那錯誤的訊息貼出,
才知那錯誤是什麼。

先推測可能的情況:
1.確認該檔可被執行:
基本上該 script 的開頭應是:

<pre class="c" name="code">#!/bin/sh

且應 chmod +x 使之可被執行。

2.執行目錄的問題:
手動可執行,
可能是因為就在該目錄執行的關係,
而cron執行會錯誤是因為沒在該目錄的關係,
所以在 script 裡,要

<pre class="c" name="code">cd /某目錄
執行某些動作
Ray iT邦大神 1 級 ‧ 2011-07-07 15:19:16 檢舉

還有 search path, user permission 的問題要考慮....

2
welong
iT邦新手 3 級 ‧ 2011-07-09 00:46:06

給個訊息或是log才容易討論
不然,手動執行可以,crond執行失敗
大多都是 login-shell所致吧

我要發表回答

立即登入回答