簡體   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