Cron作业无法运行

时间:2018-01-16 17:54:32

标签: python cron

我试图每分钟在cron服务器上运行我的python脚本,但不知何故它不运行。我的脚本在本地运行良好。

*/1 * * * * python /home/ana/cronjobs/ele/transfer.py 

在我的transfer.py文件的顶部,我有:

#!/usr/bin/python
# -*- coding: utf-8 -*-

仍然没有运行。任何线索?

2 个答案:

答案 0 :(得分:1)

我认为在你的cron工作中你需要给出绝对的路径,因为你不必知道当cron踢的时候你在哪里。

变化

*/1 * * * * python /home/ana/cronjobs/ele/transfer.py

*/1 * * * * /usr/bin/python /home/ana/cronjobs/ele/transfer.py

答案 1 :(得分:1)

答案来自我在评论中与OP的讨论。

要检查STDOUT / STDERR,请运行下面的cron将其保存在/tmp/cron_out中:

* * * * * python /home/ana/cronjobs/ele/transfer.py >/tmp/cron_out 2>&1

现在,文件/tmp/cron_out包含:

ImportError: No module named pathlib

所以解决这个问题很明显,即安装pathlibpip install pathlib)。需要注意的是,pathlib包含在3.4中的标准库中。

注意:

由于cron使用一组有限的环境变量运行,并且大多数值都重置为默认值,因此使用绝对路径执行可执行文件始终是个好主意:

* * * * * /usr/bin/python /home/ana/cronjobs/ele/transfer.py

此外,您拥有/usr/bin/python,因此更简单的方法是使脚本可执行:

chmod u+x /home/ana/cronjobs/ele/transfer.py

并仅在crontab

中使用脚本的路径
* * * * * /home/ana/cronjobs/ele/transfer.py