2017-04-08 50 views
-2

我試圖找出爲什麼我的crontab沒有運行我的Python腳本Python腳本,我懷疑這是因爲我有參數:crontab的運行與參數

這是什麼樣子:

0  3  * * * root /usr/bin/python && /usr/bin/python -q /root/tools/script.py parm1 parm2 2>&1 >>/var/log/python-tools.log 

所以基本上我可以在終端運行以下命令:

$ python script.py parm1 parm2 

但是當我在crontab以上線試它不工作

+0

爲什麼在開頭有'/ usr/bin/python &&'? – Barmar

+0

我無法在Python文檔中找到'-q'選項。它應該做什麼? – Barmar

+0

您是否檢查過root用戶的電子郵件以查找來自'cron'的錯誤消息? – Barmar

回答

1

-qpython的無效參數。在它之前你不應該有/usr/bin/python &&

0 3 * * * root /usr/bin/python /root/tools/script.py parm1 parm2 2>&1 >>/var/log/python-tools.log 
1

首先,這個腳本是否必須從根目錄運行?這通常是一個壞主意。

其次使用& &,這意味着它將與成功退出前僅當命令後運行的命令,因爲在第一個命令你只運行蟒蛇,它實際上沒有做任何事情,你是不可能得到的以成功代碼退出。

+0

它正在寫入'/ var/log'中的日誌文件,這通常需要root權限。 – Barmar

+0

您可以更改該特定日誌文件的權限嗎?或者也許使用另一個不需要root的位置和日誌文件?這樣你就不需要整個腳本的根目錄 –

+0

他的腳本也位於'/ root/tools'中。我的猜測是該腳本正在執行一些系統維護任務。 – Barmar