crontab bash脚本执行-Raspberry pi



我有一个bash脚本,我用来执行具有特定版本的Python(3.6)的Python文件。BASH脚本目前位于我的桌面(/home/pi/desktop/go.sh)

#!/bin/bash
python3.6 /home/pi/scriptDir/myScript.py

这是我的crontab条目,当我做crontab -l时(注意,我已经删除了其他工作)

* * * * * bash /home/pi/Desktop/go.sh # JOB_ID_3

使用命令行或从GUI运行此文件时,它将正确执行。

当我有crontab做到这一点时,什么也不会发生。

我的python文件和bash脚本都是可执行的。chmod x

我很明显吗?

**我的python脚本确实取决于同一脚本目录中的其他文件,这是问题吗?

这是对我有用的原因。我没有使用完整的Python安装路径。除非您记录bash文件,否则没有迹象表明您有问题。

这是我的bash文件。Echo只是为了确定我确实在运行Bash文件。

#!/bin/bash
echo started
/home/pi/Python-3.6.0/python home/pi/myScriptFolder/myScript.py
echo finished

分解执行脚本的行: /home/pi/Python-3.6.0/python-是我的PI上安装Python 3.6.0的地方,对您来说可能会有所不同。home/pi/myScriptFolder/myScript.py是我要运行的脚本。

这是我的cron语句:

*/15 * * * * bash /home/pi/Desktop/go.sh > /home/pi/Desktop/clog.log 2>&1 -q -f

分解这条线: */15 * * * *是CRON时间,在这种情况下,每15分钟。bash /home/pi/Desktop/go.sh指定运行bash文件和该文件的目录。> /home/pi/Desktop/clog.log 2>&1 -q -f最后一节创建一个名为Clog.log的日志文件,以便您可以看到正在发生的事情。

这里的密钥不仅是记录GO.SH bash文件执行,还将2>&1 -q -f添加到日志请求的末尾。在我这样做之前,没有问题的迹象,之后我将python文件错误返回到日志文件中。

cron作业令人惊讶地棘手。除了工作目录(您必须设置在某个地方)外,您还需要处理环境设置(例如$PATH)。

首先将Shell脚本的标准输出和错误重定向到日志文件,以便您可以获得反馈。

最新更新