2012-08-17 96 views
1

我想在我的debian系統中創建一個cron任務。cron爲什麼不運行?

我這樣做

sudo crontab -e 

,並添加一行

10 17 * * * /home/userdir/cron/meiwei-slide-shoot.sh 

而且我做到這一點,在17:00和希望腳本在運行17:10。但它不起作用。

我試過了這個腳本。它運作良好。但爲什麼不通過cron運行?

+0

cron守護進程是否啓動?看看cron日誌,看看是否有錯誤。 – 2012-08-17 09:19:01

+0

'meiwei-slide-shoot.sh'可執行文件,是否以指定要調用的shell的shebang行開始? – 2012-08-17 09:20:25

+0

爲什麼不測試每分鐘的腳本* * * * * /home/userdir/cron/meiwei-slide-shoot.sh>/dev/null 2>&1如果這樣的話,然後改變時間,然後測試 – Rajeev 2012-08-17 09:21:14

回答

1

您是否檢查過該文件是否可執行?

你有沒有加入這樣一行:

touch /tmp/proof_that_i_am_running 

到腳本的頂部,以檢查其是否正開始,並剛剛輟學某些其他原因,像一個不完整的環境設置?

您是否收到來自cron的包含輸出/錯誤的郵件?

您是否檢查了cron假脫機目錄(例如/var/spool/cron/crontabs)以確保條目已創建?

有很多事情你可能錯過了,這只是常見的事情,但一個好的開始。


一個很好的測試是添加:

* * * * * date >>/tmp/crondates 2>&1 

crontab並觀察是否出現該文件。

+0

我試過這個'* * * * * date >>/tmp/crondates 2>&1'。有用。但我仍然無法執行腳本。 – aisensiy 2012-08-20 03:23:00

+0

@aisensiy:並將'touch'放在腳本的頂部?那是幹什麼的? – paxdiablo 2012-08-20 05:30:09

+1

我將此添加到腳本'script.sh> /tmp/cron.log 2>&1'中,它告訴我無法找到該命令。也許根目錄找不到dir/usr/local/bin? – aisensiy 2012-08-20 07:18:45

1

我會

  1. 檢查這些文件的權限,以確保該腳本可以由cron用戶
  2. 日誌標準輸出/標準錯誤到一個文件,以捕捉如任何錯誤執行script.sh >/tmp/cron.log 2>&1

cron進程,以巨大的剪切下來環境中運行,很可能是你要麼有執行權限問題,或者你依靠一個環境變量不可用。對於什麼是值得的,每次我設置cron作業時,我都會經歷幾次迭代。

This AskUbuntu question還包含一些有用的信息。