2017-05-12 96 views
0

我有一個設置好並準備好的cron作業。我的文件是這樣的:Python cron作業失敗

import sys,os 
    input = sys.argv[1] 
    if os.path.isfile(input)==False: 
     print("Ensure input csv file exists") 
     quit() 
    # do stuff 
    print("Continued") 

當我在linux終端上運行命令python3 /home/abc/data_a.py /home/abc/data_b.csv,程序繼續按預期。

但是,當我使用0,10,20,30,40,50 * * * * python3 /home/abc/data_a.py /home/abc/data_b.csv將其作爲cronjob進行排定時,輸出「確保輸入csv文件存在」會打印出來,程序將自行退出。這是怎麼回事?

+0

看來,cron並沒有正確處理程序。您在分配cron作業時是否稍微修改了代碼? –

回答

1

好像我的crontab命令不能正常運行(其中最初我手動創建一個crontab.txt文件,並運行該命令crontab crontab.txt

的解決了這個問題:

1)crontab -r恢復

2)使用crontab -e並使用相同的參數編輯裏面的crontab文件

-1

quit()它終止一個Python腳本。所以一旦quit()調用。下一行將不會執行。

+0

僅當輸入文件不存在時纔會調用quit。聲明是正確的。 – Michal

+0

是的,但** python3 **不考慮作爲sys **參數**。 「命令」是第一個參數,文件是第二個參數。所以如果你在腳本中打印sys.argv。它只會顯示[命令,文件]而不是python3。 –