2017-05-12 142 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。 –