2010-03-05 87 views
1

感謝幫助我設置我的cron作業,crontab對我來說真的是一個金礦。Crontab作業無法啓動......想法?

不幸的是,我有一個問題,並不知道它可能是什麼樣的......基本上一個工作不會在鄰居工作時開始。我將解釋


這是我的crontab作業列表:

*/10 * * * *蟒/webapps/foo/manage.py fetch_articles

*/10 * * * *蟒/webapps/bar/manage.py fetch_books

我寫了他們,因爲他們是在一個文件中,並使用crontab中/路徑/到/文件存儲其中。

使用crontab -l進行檢查並找到作業。


奇怪的是,這些執行每10分鐘正常......但對方一1沒有。我嘗試手動輸入命令,並且沒有問題,它工作正常。


有沒有人有建議?

幫助將不勝感激,謝謝你們。


更新:

我已經在系統日誌文件,我發現這一點:

3月5日2時50分01秒本地主機科雷[21652]:(根)CMD(python /webapps/foo/manage.py fetch_books)

這是否意味着crontab調用工作正常?


感謝您的回覆傢伙!


固定它!非常感謝大家!

問題是,腳本默默失敗,我相信這是由於PYTHON_PATH由於腳本被調用的位置而發生變化......我完全確定。

+0

有消息告訴你有關錯誤的任何信息嗎? – 2010-03-05 02:43:44

+0

系統錯誤日誌中的任何內容?如果將這兩個作業都放到一個shell腳本中,它會起什麼作用? – 2010-03-05 02:45:35

+0

我一直在系統日誌中,沒有錯誤...我會添加它的帖子。感謝問! – RadiantHex 2010-03-05 02:51:49

回答

6

的Cron一直運行在以你的想法:-)

我一直有我的cronjobs設置類似於不同的環境:

*/10 * * * * (date ; python /webapps/foo/manage.py fetch_articles) >>/tmp/fetch.out 2>&1 

,以確保有一些記錄,我可以看一下。

這將縮小的問題降到之一:

  • 的cron,如果TEMP文件沒有出現;或
  • 您的腳本,如果它確實出現。

而在後一種情況下,希望會有一些輸出可以調試。如果沒有,請將輸出放在那裏。要做到這一點

一種方法是把:

set -x 

在腳本,這將導致所有行是執行前輸出的頂部。我所有的腳本傾向於開始:

#!/bin/bash 
#set -x 

所以我可以在調試時取消第二行的註釋。

4

從crontab的手冊頁:

BUGS 雖然cron的要求,在一個 換行符, 既不crontab命令也不cron守護進程在一個crontab端中的每個條目將檢測這種 錯誤。相反, crontab將顯示爲正常加載。但是,命令 將永遠不會運行。 最好的選擇是確保你的crontab在 末尾有一個空行。

(我的重點)。

+1

@RadiantHex如果'crontab -l'導致你的提示和上一份工作在同一行,那麼情況就是這樣。 – 2010-03-05 02:58:33

1

我想〜unutbu的答案可能是正確的,如果它是第二份工作沒有運行。

但是,另一件要檢查的問題是,/webapps/bar/manage.py是否需要對任何資源(例如網絡套接字/臨時文件等)進行獨佔訪問。由於您同時啓動2個進程,因此可能會觸發競爭條件。