我正试图让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吗?
答案 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