我正在尝试设置一个cron任务,以便在特定时间每天运行python脚本。这是我的crontab -e
:
53 16 * * * python /code/4dlife/pythonscript.py
我在16:52设置了这个并等待观看,但终端没有出现任何问题。我检查了nano CRON /var/log/syslog
但它是空的。
我做错了什么?我可以看到脚本在我打开的同一终端上运行吗?如果没有,我还能在哪里看到输出?但首先,我需要让它发挥作用。
注意:
#!/usr/bin/env python
答案 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---")