0

我试图让 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,然后使用 cron 来执行该 bash 脚本吗?

4

4 回答 4

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
于 2013-03-12T18:58:51.333 回答
1

你可以做类似的事情

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

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

编辑:替换反引号

于 2013-03-11T08:40:44.167 回答
0

试试这个方法:

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

并在 myst.py 中添加以下内容

#!/usr/bin/env python
于 2013-03-11T10:00:46.160 回答
0

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

你可以试试:

*/1 * * * * PYTHONPATH=/my/python/modules/ /usr/bin/python /home/pi/myst-myst/myst.py `./monitor.sh`
于 2013-03-11T09:48:57.467 回答