Таким образом, решение состоит в том, чтобы на самом деле вызвать .close () для файла, в который мы пишем сценарий python, тогда служба systemd работает, как и ожидалось. Обращайтесь к этой теме: https://askubuntu.com/questions/83549/python-script-wont-write-data-when-ran-from-cron последний ответ = f.close ()
и рабочий файл скрипта:
from time import strftime
import board
import busio
import adafruit_bme280
# Create library object using our Bus I2C port
i2c = busio.I2C(board.SCL, board.SDA)
bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c,address=0x76)
# OR create library object using our Bus SPI port
#spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
#bme_cs = digitalio.DigitalInOut(board.D10)
#bme280 = adafruit_bme280.Adafruit_BME280_SPI(spi, bme_cs)
# change this to match the location's pressure (hPa) at sea level
bme280.sea_level_pressure = 1013.25
with open("/home/pi/senselog.csv", "w") as log:
while True:
temp_h = bme280.temperature
humidity = bme280.humidity
pressure = bme280.pressure
log.write("{0},{1}\n".format(strftime("%Y-%m-%d %H:%M:%S"),str([temp_h,humidity,pressure])))
log.close()
time.sleep(60) ```
Можно использовать [putObjects
] [1] функция JetS3t для загрузки нескольких файлов сразу.
Кроме того, Вы могли использовать фоновый поток, чтобы загрузить на S3 от очереди и добавить файлы к очереди из Вашего кода, который загружает данные в базу данных.
[1]: http://jets3t.s3.amazonaws.com/api/org/jets3t/service/multithread/S3ServiceMulti.html#putObjects (org.jets3t.service.model. S3Bucket, org.jets3t.service.model. S3Object [])