2013-03-11 81 views
0

我试图让cron每隔10分钟运行一次这个命令;Crontab运行Python的问题

(在/ home/PI /神秘岛,神秘岛/ DIR)

python myst.py `./monitor.sh` 

我已经试过几乎所有得到它的工作,但cron将会无法正常执行。这是我目前所拥有的;

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

任何帮助将不胜感激。

是否有替代我可以使用的crontab?我可以使用bash脚本来执行python,然后使用cron作为bash脚本吗?

+0

ehat的意思是“不会正确执行它”吗?日志中是否有任何内容? – glglgl 2013-03-11 08:48:05

+0

我找不到相关日志中的任何内容.. – Hugo 2013-03-11 09:05:09

回答

1

你可以做类似

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

运行该命令之前,改变工作目录。

编辑:代替反引号

+0

我尝试过,但没有奏效。即使这样也行不通。 sudo/usr/bin/python /home/pi/myst-myst/myst.py'/ home/pi/myst-myst/monitor.sh' – Hugo 2013-03-11 09:05:30

+0

它是如何工作的;错误是什么? – 2013-03-11 09:17:16

+0

这是输出; http://pastebin.com/hykfi5a3 – Hugo 2013-03-11 09:25:51

0

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

你可以试试:

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

,因为cron的当前目录不是monitor.sh – 2013-04-29 16:34:58

0

试试这个方法:

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

,并添加myst.py

#!/usr/bin/env python 
+0

,所以不起作用。就是这样,它仍然不起作用。 – Hugo 2013-03-11 10:01:45

+0

,因为cron的当前目录不是monitor.sh的目录 – 2013-04-29 16:34:43

2

我有以下问题调用Python和perl直接从cron。对于perl,它归结为LIBPATH默认为不足。

我建议你包裹在命令shell脚本,并加入“设置-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