【问题标题】:Crontab not working for pythoncrontab 不适用于 python
【发布时间】:2015-05-28 01:04:06
【问题描述】:

我正在尝试设置一个 cron 任务,以便每天在特定时间运行 python 脚本。这是我的crontab -e:

53 16 * * * python /code/4dlife/pythonscript.py

我将其设置为 16:52 并等待观看,但终端上没有任何消息。我检查了nano CRON /var/log/syslog,但它是空的。

我做错了什么?我可以看到脚本在我打开的同一个终端上运行吗?如果没有,我还能在哪里看到输出?但首先,我需要让它发挥作用。

注意:

  1. 我的 python 脚本顶部有 #!/usr/bin/env python
  2. 我在安装了 linux 的虚拟机上运行它。

【问题讨论】:

  • 脚本是否产生任何东西(即文件或目录),您可以检查它是否有效?我假设您自发布此问题以来已经看过,但无论如何都要检查。你的python设置正确吗?我们的一个 *nix 盒子有问题,其中 python 设置不正确,/usr/bin/env python 不起作用。你试过/usr/bin/python吗?
  • 使用ps aux|grep crontab检查是否正在运行
  • @jared 是的,它有效。是的,当我手动运行它时,该脚本运行良好。我不知道cron发生了什么。 ://
  • @itzmeontv 是的,我已经运行过了,输出是root 939 1 0 15:54 ? 00:00:00 cron ubuntu 2306 2186 0 15:57 pts/0 00:00:00 nano testcron.sh ubuntu 2307 2186 0 15:57 pts/0 00:00:00 nano testcron.sh ubuntu 2308 2186 0 15:57 pts/0 00:00:00 /bin/sh ./testcron.sh ubuntu 2309 2308 0 15:57 pts/0 00:00:00 nano testingcron
  • 当我运行ps -ef | grep cron | grep -v grep

标签: python linux cron scheduled-tasks crontab


【解决方案1】:

您的脚本在终端中是否正常工作?我的意思是,当您键入时:

python /code/4dlife/pythonscript.py

结果出现了吗?

【讨论】:

  • 是的!显然是的!
【解决方案2】:

我曾经在 cron 中遇到过 Python 的问题,但是当我开始使用 virtualenv/virtualenvwrapper + pyenv 时,这些问题都得到了解决。

从他们开始,我就使用 cron 来运行带有 Python 完整路径的命令,比如

53 16 * * * /usr/bin/python /code/4dlife/pythonscript.py

。要获取完整路径,请在 shell 中运行

$ which python

并使用我展示的路径。

不同之处在于,就我而言,Python 二进制文件位于特定文件夹 (~/.virtualenv/<env-name>/bin/python)。

【讨论】:

    【解决方案3】:

    在您的 crontab 中使用您的 python 可执行文件的确切路径:

         53 16 * * * /usr/bin/python /code/4dlife/pythonscript.py
    

    这样你可以确定你的 crontab 知道在哪里可以找到 python。

    调试自动运行的脚本的一种方法是写入系统日志:

        import syslog
    
        syslog.syslog(syslog.LOG_ERR, "---SCRIPT START---")
    

    【讨论】:

      猜你喜欢
      • 2023-02-15
      • 1970-01-01
      • 2014-07-07
      • 2017-11-02
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      相关资源
      最近更新 更多