繁体   English   中英

crontab bash脚本执行-Raspberry Pi

[英]crontab bash script execution - Raspberry Pi

我有一个bash脚本,用于使用特定版本的Python(3.6)执行python文件。 Bash脚本当前位于我的桌面上(/home/pi/Desktop/go.sh)

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

这是我执行crontab -l时的crontab条目(注意,我已经删除了其他作业)

* * * * * 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 * * * *是计划时间,在这种情况下是每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脚本的标准输出和错误重定向到日志文件,以便您获得反馈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM