0

我无法 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 调用它时,scipt 可以工作

该脚本将传感器的数据发送到 influxdb :

#!/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)
4

1 回答 1

0

我终于找到了解决方案,它与 crontab 的行为有关,当它执行脚本时,它是使用 sudo "user" 执行的。因此,pythons 库也必须与“sudo”用户一起安装:sudo pip3 install <libs>而不是pip3 install <libs>像我以前那样简单。

于 2020-04-05T17:13:05.447 回答