Cron 一个 Python3 脚本
Cron a Python3 script
我无法 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 文件,但它也不起作用。
我也试着用 chmod +x bmp280_influxdb.py
使 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)
终于找到解决办法了,跟crontab的功能有关,
当它执行脚本时,它是通过 sudo "user" 来执行的。
因此,pythons 库也必须与 "sudo" 用户一起安装:sudo pip3 install <libs>
而不是像我以前那样简单地 pip3 install <libs>
。
我无法 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 文件,但它也不起作用。
我也试着用 chmod +x bmp280_influxdb.py
使 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)
终于找到解决办法了,跟crontab的功能有关,
当它执行脚本时,它是通过 sudo "user" 来执行的。
因此,pythons 库也必须与 "sudo" 用户一起安装:sudo pip3 install <libs>
而不是像我以前那样简单地 pip3 install <libs>
。