Cron Python3 скрипт - PullRequest
       20

Cron Python3 скрипт

0 голосов
/ 05 апреля 2020

Я не могу выполнить cron для скрипта python3, он не работает, что я пробовал:

*/1 * * * * python3 /home/pi/pythons/bmp280_influxdb.py

*/1 * * * * /usr/bin/python3.7 /home/pi/pythons/bmp280_influxdb.py

Я пытался создать файл. sh, который содержит: python3 /home/pi/pythons/bmp280_influxdb.py и cron. sh файл, но он тоже не работает.

Я также пытался сделать bmp280_influxdb.py исполняемым с chmod +x bmp280_influxdb.py и использовать */1 * * * * /home/pi/pythons/bmp280_influxdb.py напрямую

, зная, что :

*/2 * * * * sh /home/pi/scripts/cputemp.sh работает

Я не могу понять, что делать

Я трижды проверил пути, и сценарий работает, когда я вызываю его через python3

Скрипт отправляет данные датчика в адрес притока:

#!/usr/bin/python3
#import influxdb libs
import time
import sys
import datetime
import json
from influxdb import InfluxDBClient
#import bmp280 libs
import board
import busio
import digitalio
import adafruit_bmp280

# Create the InfluxDB client object
client = InfluxDBClient(host='localhost', port=8086) #address
client.switch_database("weather")

#sensor details
spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
cs = digitalio.DigitalInOut(board.D5)
sensor = adafruit_bmp280.Adafruit_BMP280_SPI(spi, cs)

#building data
iso = time.ctime()

temp = float(sensor.temperature)
pres = float(sensor.pressure)

temp = round(temp, 2)
pres = round(pres, 3)

json_body = [
{
    "measurement": "bmp280",
    "fields": {
        "exttemp": temp,
        "extpres": pres
    }
}
]

#sending data
client.write_points(json_body)

1 Ответ

0 голосов
/ 05 апреля 2020

Я наконец нашел решение, оно связано с компиляцией crontab, когда он выполняет скрипт, он делает это с sudo "user". Поэтому библиотеки pythons также должны быть установлены с пользователем "sudo": sudo pip3 install <libs>, а не просто pip3 install <libs>, как я привык.

...