【问题标题】:problem with cronjob to run python script on ubuntu servercronjob 在 ubuntu 服务器上运行 python 脚本的问题
【发布时间】:2023-02-07 10:11:21
【问题描述】:

我已经在 Digital Ocean guide 之后安装了 python3 并运行我的 python 脚本,这是 bash 代码:

    > source /home/username/python_projects/project_name/bin/activate
    > python3 /home/username/python_projects/project_name.py
    > deactivate

如果我以相同的顺序将这些命令放在 crontab 中,则什么也不会发生。 我究竟做错了什么?

Cronjob 处于活动状态并正在运行。

    > systemctl status cron

【问题讨论】:

  • 您不能像那样将命令放入 crontab 中。 Crontab 采用特殊的语法来准确地告诉它何时运行命令。
  • 向我们展示您正在使用的实际 crontab 文件。

标签: python cron ubuntu-server


【解决方案1】:

有几件事可能会导致您的 cronjob 无法运行:

环境变量:cronjob 中的 source 命令设置了虚拟环境,但这个环境不会传递给 cron 进程。您应该在虚拟环境中指定 Python 可执行文件的完整路径,例如/home/用户名/python_projects/project_name/bin/python3.

权限问题:确保cron用户有执行脚本和访问虚拟环境的权限。

输出:默认情况下,cron 不会向终端发送任何输出。如果您的脚本产生输出,您可能希望将其重定向到一个文件以进行调试。您可以通过将 > /tmp/output.log 2>&1 添加到 crontab 条目的末尾来执行此操作。

您可以检查系统日志以获取与您的 cron 作业相关的任何错误消息。日志通常位于 /var/log/syslog 或 /var/log/messages 中。

我希望这有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多