【问题标题】:cron job 'django-cron' not running in ubuntu cron tabcron 作业 'django-cron' 未在 ubuntu crontab 中运行
【发布时间】:2014-04-04 16:03:18
【问题描述】:

我正在使用 django_cron 来安排作业,当我使用 python manage.py runcrons 时,这项工作很好。但是在 ubuntu cron list 中添加 cron 作业后,作业没有执行。 我的setting.py是:

CRON_CLASSES = [
    "home.cron.HomeCronJob",
]

FAILED_RUNS_CRONJOB_EMAIL_PREFIX = []
INSTALLED_APPS = (
    'django.contrib.auth',
    '..................'
    'django_cron',
)

我的 cron.py 文件是:

from django_cron import CronJobBase, Schedule
from home.management.commands.auto_renueva import republishAds
class HomeCronJob(CronJobBase):
    RUN_EVERY_MINS = 2
    MIN_NUM_FAILURES = 2
    schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
    code = 'home.home_cron_job'

    def do(self):
        republishAds()

然后我创建了一个 shell 脚本来运行这个作业,cron.sh:

#! /bin/bash
source /home/cis/ENV/muna/bin/activate
python /home/cis/DjangoLive/Newmunda/mund2anuncios/manage.py runcrons
deactivate

我在 ubuntu cron 文件中添加的代码是:

*/1 * * * *  /home/cis/DjangoLive/Newmunda/mund2anuncios/crons.sh >> /home/cis/Desktop/crons.log 3 >> /home/cis/Desktop/cron_errors.log

请建议我在这里做错了什么。

提前致谢

【问题讨论】:

    标签: django ubuntu cron ubuntu-10.04 django-cron


    【解决方案1】:

    猜测

    python /home/cis/DjangoLive/Newmunda/mund2anuncios/manage.py runcrons
    

    将失败,因为 PATH 未在 cron 环境中设置。您应该包含 python 解释器的完整路径。

    cron 作业中的其他常见错误是对脚本没有执行权限。通常 cron 错误会通过电子邮件发送给 root,因此您应该了解有关 root 邮箱错误的更多信息

    【讨论】:

    • Hii Raul,我已授予 0755 对 cron.sh 文件的权限,并且当我要运行 ./cron.sh 时代码正在运行
    • 你是否尝试过使用 python 的完整路径?
    • 不,bcs shell 脚本激活 virtualenv,但让我试试完整路径。
    • 那么,您将不需要 cron.sh 上的完整路径,但您应该检查 activate 不依赖 PATH 或任何其他环境变量来运行
    • 也不能使用完整路径。我不知道我在这里做错了什么。
    猜你喜欢
    • 1970-01-01
    • 2017-06-05
    • 2014-11-02
    • 2013-01-10
    • 2021-11-07
    • 2020-03-16
    • 2015-12-28
    相关资源
    最近更新 更多