2012-08-05 493 views
2

所以我試圖讓我的服務器每小時執行一次Python腳本。Python腳本沒有在crontab中執行

當我進入目錄並使用python twitter.py運行它時,它工作正常。

不過,我在crontab中該條目和它不工作:

0 * * * * /run/twitterparse/twitter.py > /run/twitterparse 

我想擁有它執行每隔一小時,在小時。

下面是輸出到syslog:

Aug 5 13:00:01 localhost CRON[11474]: (root) CMD (/run/twitterparse/twitter.py >/run/twitterparse/) 

Aug 5 13:00:01 localhost CRON[11473]: (CRON) info (No MTA installed, discarding output) 

現在是什麼應該做的是訪問數據庫,並從Web到數據庫中保存的信息。該腳本在手動運行時很好,但不會自動運行。

+2

這是可執行文件&有一個hashbang,對不對? – Jonatan 2012-08-05 13:17:12

+0

是否有任何環境變量需要設置才能使'twitter.py'工作? – unutbu 2012-08-05 13:26:03

回答

2

我固定我的問題做這個

0 * * * * python /run/twitterparse/twitter.py > /run/twitterparse 

和PY文件應該是可執行

chmod +x twitter.py 
+0

添加Python做到了。 – 2012-08-05 16:04:48

1

你可能需要

#!/usr/bin/python 

添加到主腳本的開頭,用你的Python解釋器的位置。

並更改腳本的權限爲可執行

chmod +x <main script name .py> 

希望這有助於

+0

補充說,做了chmod,仍然沒有運氣,數據庫中沒有數據。 – 2012-08-05 15:06:16

+0

我相信usr/bin/python是我的Python解釋器 – 2012-08-05 15:06:40

0

一個cron腳本,進入到終端的任何輸出(即標準輸入輸出或標準錯誤)發送到誰是人帳戶的腳本是註冊下。

您可以從錯誤消息中看到它正試圖發送此郵件,但是「沒有安裝MTA」,因此它將放棄所有診斷消息。

您的第一步是解決MTA問題,以便您可以收到郵件或確保將stdio和stderr寫入日誌文件。

我能看到的一個明顯問題是輸出被導向到非文件。

/run/twitterparse/twitter.py > /run/twitterparse 

是不是/ run/twitterparse文件夾?我想:

/run/twitterparse/twitter.py > /run/twitterparse/ouput.txt 

就解決一半的問題..