【发布时间】:2018-03-05 12:43:00
【问题描述】:
我有一个简单的 cron 作业,应该每 15 分钟发送一次邮件并更新本地 sqlite3 db 文件。 问题是当我正确收到邮件时,数据库中的表没有得到更新,
import sys
import Adafruit_DHT
import time
import sqlite3
import datetime
import smtplib
print('Fierd!')
print(datetime.datetime.now())
humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 17)
conn = sqlite3.connect('history.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS history(id INTEGER PRIMARY KEY AUTOINCREMENT,temp real,humidty integer,time DATE )''')
c.execute('''INSERT INTO history(temp,humidty,time) VALUES(?,?,?)''',(temperature,humidity,datetime.datetime.now()))
conn.commit()
conn.close()
server = smtplib.SMTP('*************',587)
server.starttls()
server.login('******','********')
msg =temperature
server.sendmail('*******************','******************',repr(msg))
server.quit()
如您所见,邮件应在值插入数据库后发送。 但我只接收邮件。 如果我手动运行它,它会按预期工作。
编辑: 这是 cron 命令: */15 * * * * sudo python /home/pi/adafruit_python_DHT/examples/saveHistory.py &> /tmp/mycommand.log # JOB_ID_1 有什么想法吗?
【问题讨论】:
-
你也可以分享一下crontab条目吗?
-
这里可能的问题似乎是
history.db正在从另一个文件位置连接。