【问题标题】:Django-crontab - ERROR: sh: line 1: /usr/bin/crontab: No such file or directoryDjango-crontab - 错误:sh:第 1 行:/usr/bin/crontab:没有这样的文件或目录
【发布时间】:2021-06-10 07:48:00
【问题描述】:

我关注了documentation

在我的 django 项目特定的 venv (myproject/venv) 中,我安装了 django-crontab[0.7.1] 使用命令:

(venv) pip3 install django-crontab

添加到 settings.py

INSTALLED_APPS = (
 ...

'django_crontab',

)

CRONTAB_COMMAND_SUFFIX = '2>&1'

CRONJOBS = [
('*/1 * * * *', 'django.core.management.call_command', ['my_command'])
]

接下来当我运行python manage.py crontab add 时出现错误:

(venv) python manage.py crontab add
/bin/sh: line 1: /usr/bin/crontab: No such file or directory
adding cronjob: (b27648b2dab947d53fe7e8c052bcd9a7) -> ('*/1 * * * *', 
'django.core.management.call_command', ['my_command'])
sh: line 1: /usr/bin/crontab: No such file or directory

但我手动检查了 /usr/bin/,发现存在一个名为 crontab 的文件。

之后,当我运行 python manage.py crontab show 时,没有添加任何作业。

此时我不知道该怎么办。需要帮助。

【问题讨论】:

    标签: python django cron


    【解决方案1】:

    编辑:好的,我想我理解这个问题。该脚本在虚拟环境中运行,因此无法访问 cron。我不知道完全解决这个问题,但我认为您可以查看此页面提供的解决方案:https://codeinthehole.com/tips/running-django-cronjobs-within-a-virtualenv/

    替代解决方案,只运行不带 Venv 的脚本。


    您的系统上似乎没有安装 Cron。

    试试这个(如果您使用的是 Ubuntu 或任何其他基于 Debian 的发行版):

    sudo apt-get update    
    sudo apt-get install cron
    

    【讨论】:

    • sudo apt-get install cronReading package lists... DoneBuilding dependency treeReading state information... Donecron is already the newest version (3.0pl1-136ubuntu1).
    • 是的,我刚刚注意到你已经检查过了,我正在编辑我的帖子。您是否尝试使用 sudo 运行您的脚本?
    • 这样吗? (venv) sudo python manage.py crontab addsh: sudo: command not found
    • 问题似乎是脚本运行的虚拟环境。我刚刚在我的帖子中添加了一个带有潜在解决方案的链接。如果您想要另一种方法,您可以测试仅在没有 venv 的情况下运行脚本。
    • 我也不能在外面跑。你能给我一个在终端中运行的完整命令的例子(没有激活venv)。注意:django-crontab 包仅安装在 venv 中。
    猜你喜欢
    • 2019-12-10
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2023-04-04
    • 2016-03-28
    • 2015-11-29
    • 1970-01-01
    相关资源
    最近更新 更多