Crontab运行Python的问题

时间:2013-03-11 08:29:06

标签: python crontab raspberry-pi

我正试图让cron每10分钟运行一次这个命令;

(在/ home / pi / myst-myst / DIR中)

python myst.py `./monitor.sh`

我已经尝试了很多东西让它工作但cron不会正确执行它。这就是我现在所拥有的;

*/1 * * * * /usr/bin/python /home/pi/myst-myst/myst.py `./monitor.sh`

非常感谢任何帮助。

我可以使用crontab的替代品吗?我可以使用bash脚本执行python,然后对该bash脚本使用cron吗?

4 个答案:

答案 0 :(得分:2)

我在从cron直接调用python和perl时遇到了问题。对于perl来说,它归结为LIBPATH默认为不足。

我建议将命令包装在shell脚本中并添加“set -x”来跟踪问题

#!/bin/sh
set -x
export PYTHONPATH=/my/python/modules:$PYTHONPATH
/usr/bin/python /home/pi/myst-myst/myst.py $(/home/pi/myst-myst/monitor.sh)

直接调用它以确保它有效,然后尝试通过cron调用。确保重定向stdout和stderr以捕获任何错误消息

 */10 * * * * /home/pi/myscript.sh > /home/pi/stdout 2> /home/pi/stderr

答案 1 :(得分:1)

您可以执行类似

的操作
*/10 * * * * cd /home/pi/myst-myst/;/usr/bin/python /home/pi/myst-myst/myst.py $(./monitor.sh)

在运行命令之前更改工作目录。

编辑:替换反引号

答案 2 :(得分:0)

您的脚本是否依赖于任何环境变量,例如PYTHONPATH? 如果是这样,当cron调用时,环境将会丢失。

您可以尝试:

*/1 * * * * PYTHONPATH=/my/python/modules/ /usr/bin/python /home/pi/myst-myst/myst.py `./monitor.sh`

答案 3 :(得分:0)

尝试这种方式:

 */1 * * * * /home/pi/myst-myst/myst.py `./monitor.sh`

在myst.py中添加以下内容

#!/usr/bin/env python