Python脚本从终端运行,但不是crontab。使用绝对路径但无济于事

时间:2019-04-17 06:47:32

标签: python bash cron centos7

这是我的crontab。

SHELL=/bin/bash
PATH=/home1/<user>/.pyenv/shims:/home1/<user>/.pyenv/bin:/usr/lib64/qt-3.3/bin:/usr/nhnkrb5/bin:/usr/bin:/bin:/usr/X11R6/bin:/home1/<user>/.local/bin:/home1/<user>/bin
HOME=/home1/<user>


# Do something
0 1 * * * /home1/<user>/.pyenv/shims/python /home1/<user>/folder/myscript.py >> /home1/<user>/folder/$(date "+%Y.%m.%d-%H.%M.%S").log 2>&1


无论我从哪里执行,它都可以在终端上完美运行。我已经尝试过此页面上的所有答案,但我的cron不会返回任何错误。
https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working

我还检查了我的$PATH的cron是否与bash中的cron相同。使用* * * * * env > /tmp/env.txt

检查

请告诉我我在做什么错

1 个答案:

答案 0 :(得分:0)

最好将第1行的python标头添加到您的主脚本中。例如,如果您的主脚本文件是app.py,则其内容可以如下:

!#/home1/<user>/.pyenv/shims/python

# Here goes your Python Script. 

然后

$ chmod +x app.py

现在您可以添加

# Do something
0 1 * * * /home1/<user>/folder/myscript.py >> /home1/<user>/folder/$(date "+%Y.%m.%d-%H.%M.%S").log 2>&1

我遇到了同样的问题,当我手动运行但不能与crontab一起使用时,脚本可以工作。此方法有效。