會員中心 | iThome online | iT邦部落格 | 小7聚樂部 | iThome download | apphome

載入中...

cjtjava

iT邦初學者
8級

crontab 錯誤
標籤:linux cron script sh

各位先進大家好

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

我的OS是CentOS 5.4

感恩


發佈到:發佈到Facebook 發佈到噗浪 發佈到twitter
分享時間:2011-07-07 14:36:34
▼ ADVERTISEMENT ▼

最佳解答(發問者自選)
4

回答:bizpro ( iT邦大師6級 )

時間: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中定義出環境變數也是個好習慣.
2011-07-09 09:06:15補充
可以手動執行卻不能以crontab執行: crontab專有的環境變數PATH沒有指向script中的程式.
crontab 錯誤
iT邦幫忙MVP
回答:twtw( iT邦大師8級 )
時間:2011-07-07 15:08:09
1
錯誤是個很籠統而不具體,
需要把那錯誤的訊息貼出,
才知那錯誤是什麼。

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

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

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

[-隱藏]

回應 twtw

1

raytracy 說:

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

2011-07-07 15:19:16

回答:welong( iT邦初學者8級 )
時間:2011-07-09 00:46:06
1
給個訊息或是log才容易討論
不然,手動執行可以,crond執行失敗
大多都是 login-shell所致吧

回應

請填寫您的回應,長度限為1,000個字,回應不計點數,也不限使用次數



 
▼ ADVERTISEMENT ▼


檢舉違規

違規事項:

*補充檢舉理由(可省略),字數不可超過100字

推薦

推薦理由:


*給回答者的鼓勵(可不填),字數不可超過100字

哈哈
毆飛
開心
抗議
落寞
睡覺
噴鼻血
No
失神
爆氣
疑惑
Orz
不耐煩
喜歡
臉紅
噎到
放手
打嗑睡
掰掰
放馬過來
敲碗
簽名
筆記
拍手
沙發
XD
無言
偷笑
翻桌
謝謝
灑花
抱抱
逃跑
炸死你
愛你
生日快樂
rock
嘆氣
下雨
衝刺
搖頭
拍照
打球
健身
駭客
射門
泡湯
踹共
唱歌
做菜

上傳圖片
▼ ADVERTISEMENT ▼

邦友收藏動態

最新收藏最多人推最多人收

新增收藏

收藏到iT邦 書籤小工具

「收藏到iT邦」讓你更方便收藏站外文章。可用下面其中一種方法安裝:

  • 拖拉上面的「收藏到iT邦」連結到瀏覽器的書籤列
  • 在連結上方按右鍵,選擇「加到我的最愛」

之後看到喜歡的站外文章,只要點一下「收藏到iT邦」,就會收藏起來囉

安裝「收藏快捷鍵」

安裝「收藏快捷鍵」,可以讓邦友直接透過Google工具列上的按扭,快速收藏站內、站外的網頁。

訂閱每日摘要

iT邦幫忙即日起提供「每日摘要」給尚未註冊的邦友,只要輸入您的E-mail,每日就可以收到最新的發問與分享