2013-03-11 131 views
0

我試圖讓cron每隔10分鐘運行一次這個命令;Crontab運行Python的問題

(在/ home/PI /神祕島,神祕島/ DIR)

python myst.py `./monitor.sh` 

我已經試過幾乎所有得到它的工作,但cron將會無法正常執行。這是我目前所擁有的;

*/1 * * * * /usr/bin/python /home/pi/myst-myst/myst.py `./monitor.sh` 

任何幫助將不勝感激。

是否有替代我可以使用的crontab?我可以使用bash腳本來執行python,然後使用cron作爲bash腳本嗎?

+0

ehat的意思是「不會正確執行它」嗎?日誌中是否有任何內容? – glglgl 2013-03-11 08:48:05

+0

我找不到相關日誌中的任何內容.. – Hugo 2013-03-11 09:05:09

回答

1

你可以做類似

*/10 * * * * cd /home/pi/myst-myst/;/usr/bin/python /home/pi/myst-myst/myst.py $(./monitor.sh) 

運行該命令之前,改變工作目錄。

編輯:代替反引號

+0

我嘗試過,但沒有奏效。即使這樣也行不通。 sudo/usr/bin/python /home/pi/myst-myst/myst.py'/ home/pi/myst-myst/monitor.sh' – Hugo 2013-03-11 09:05:30

+0

它是如何工作的;錯誤是什麼? – 2013-03-11 09:17:16

+0

這是輸出; http://pastebin.com/hykfi5a3 – Hugo 2013-03-11 09:25:51

0

請問你的腳本依賴於任何環境變量,如PYTHONPATH? 如果是這樣,cron調用時環境將會丟失。

你可以試試:

*/1 * * * * PYTHONPATH=/my/python/modules/ /usr/bin/python /home/pi/myst-myst/myst.py `./monitor.sh` 
+0

,因爲cron的當前目錄不是monitor.sh – 2013-04-29 16:34:58

0

試試這個方法:

*/1 * * * * /home/pi/myst-myst/myst.py `./monitor.sh` 

,並添加myst.py

#!/usr/bin/env python 
+0

,所以不起作用。就是這樣,它仍然不起作用。 – Hugo 2013-03-11 10:01:45

+0

,因爲cron的當前目錄不是monitor.sh的目錄 – 2013-04-29 16:34:43

2

我有以下問題調用Python和perl直接從cron。對於perl,它歸結爲LIBPATH默認爲不足。

我建議你包裹在命令shell腳本,並加入「設置-x」通過對問題

#!/bin/sh 
set -x 
export PYTHONPATH=/my/python/modules:$PYTHONPATH 
/usr/bin/python /home/pi/myst-myst/myst.py $(/home/pi/myst-myst/monitor.sh) 

追查直接調用它,確保它的工作原理,然後嘗試通過cron調用。請確保重定向stdout和stderr以捕獲任何錯誤消息

*/10 * * * * /home/pi/myscript.sh > /home/pi/stdout 2> /home/pi/stderr