Crontab不适用于python

时间:2015-03-24 16:00:26

标签: python linux cron scheduled-tasks crontab

我正在尝试设置一个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的虚拟机上运行它。

3 个答案:

答案 0 :(得分:0)

您的脚本在终端中是否正常运行?我的意思是,当你输入:

python /code/4dlife/pythonscript.py

结果是否出现?

答案 1 :(得分:0)

我曾经在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)上。

答案 2 :(得分:0)

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

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

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

调试自动运行的脚本的方法是写入syslog:

    import syslog

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