繁体   English   中英

Crontab Python脚本未运行

[英]Crontab Python Script not running

我知道之前曾有人问过这个问题,但我仍然无法使其正常工作。 我的crontab文件只有这样:

0 5 * * * /home/harry/my_env/bin/python /home/harry/compile_stats/process_tonight.py 

这是我的process_tonight.py的样子:

import datetime
import sys
sys.path.append('/home/harry/compile_stats/')
import compile   # Module in above path

print("Processing last night\n")

date = str(datetime.datetime.today().year) + "-" + str(datetime.datetime.today().month) + "-" + str(datetime.datetime.today().day-1)

compile.process(date, date)

当我仅从命令行定期运行该文件时,此文件运行良好,但在计划该文件时却不起作用。

我还查看了我的/ var / log / syslog文件,但我要运行的任务没有显示在此处。

有任何想法吗?

编辑:在我的示例中将其设置为运行的时间(上午5点)只是随机插入的时间。我在其中插入的任何时间都没有运行。

编辑2#:

根据用户speedyturkey,我简化了python脚本以更好地诊断问题:

import datetime
#import sys
#sys.path.append('/home/harry/compile_stats/')
#import compile   # Module in above path

print("Processing last night\n")

date = str(datetime.datetime.today().year) + "-" + str(datetime.datetime.today().month) + "-" + str(datetime.datetime.today().day-1)

#compile.process(date, date)

什么也没发生,所以我想问题不在于导入。

根据评论,我相信问题在于您如何在crontab中调用python脚本。 运行您给crontab的确切命令,并修复它返回的所有问题。

好的,我可以通过创建一个特定的cron文件,将信息放到那里并加载它来使其工作。

因此process_tonight.cron包含以下内容:

0 5 * * * /home/harry/my_env/bin/python /home/harry/compile_stats/process_tonight.py

然后我将其加载到crontab中:

crontab process_tonight.cron

不太确定为什么这样做是可行的,反之则不行(也许其他人有想法)。

您可以尝试执行以下操作,而不是尝试从python脚本中修改路径:

cd /home/harry/compile_stats/ && ./process_tonight.py

这样可以更容易正确地import compile 请注意,这还需要使process_tonight.py可执行文件( chmod +x process_tonight.py )并添加指向您的Python解释器的shebang(我想...#!/ home / harry / my_env / bin / python)。

根据上面的编辑#2进行编辑:实际上,无法通过您编写的代码判断它是否正在运行-打印语句未重定向。 我建议更改代码以执行某种可以检查的副作用。 例如,导入子流程然后执行(示例):

subprocess.call("date > /home/harry/compile_stats/date.txt")

如果脚本执行正确,它将date输出重定向到指定的文件。

我知道这有点愚蠢,但是检查您的系统时间/时区可能会有所帮助。)))我将作业设置为在凌晨5点运行,当我在上午8点登录时,脚本没有结果。 因此,我花了1个多小时来找出问题所在,然后才发现系统时间不正确,并且凌晨5点还没有到。

您是否尝试过从Shell脚本运行它? 我的python脚本遇到了同样的问题。 我最终将命令放入外壳脚本中并运行它。 它引发了一个错误,即未导入该库,因此我使用pip和--user标志进行了安装。 现在cron运行shell脚本没有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM