У меня есть несколько скриптов на Python, которые выполняются crontab на Raspbian.
Я использую библиотеку MySQLdb для запроса в локальной сети.
Все сценарии работают нормально, если я запускаю их напрямую, через Python-IDLE или в консоли.
Но если они запускаются cron, те, кто просто выполняет запросы INSERT, работают, а те, кто выполняет запрос SELECT, не работают.
Я не нашел четкого решения, но кажется, что crontab не выполняет ту же конфигурацию клиента SQL, что и пользователь.
Может быть, я должен изменить путь перед всем запросом? (ищите "./my.cnf"?
протестировано с библиотеками MySQLdb и PyMySQL
#! /usr/bin/python
# -*- coding: utf-8 -*-
# importations
import os
import time
import sys
import pymysql as sql # or MySQLdb as...
from os import path as os_path
#-----------------------------------------------------------------#
# constants : use your own values / utilisez vos propres valeurs #
#-----------------------------------------------------------------#
PATH_THERM = "/home/pi/Documents/" #path to this script
DB_SERVER ='192.168.0.59' # MySQL : IP server
DB_USER='user' # MySQL : user
DB_PWD='password' # MySQL : password
DB_BASE='capteurs' # MySQL : database name
def log(texte):
datation = time.strftime('%d-%m-%Y %H:%M:%S')
logue = open('log_test.txt','a')
txt = "\n" + datation + "\t" + texte
txt = txt.encode('utf-8')
logue.write(txt)
logue.close()
def query_temp():
datebuff = time.strftime('%d-%m-%Y')
db = sql.connect(DB_SERVER, DB_USER, DB_PWD, DB_BASE)
cursor = db.cursor()
cursor.execute("""SELECT sonde2,date FROM `PiTemp` ORDER BY date DESC LIMIT 0, 1""")
rows = cursor.fetchall()
print datebuff, u" : Dernière température de l'eau :", rows[0][0], u"°C"
log(u"lecture température SQL - ok")
a = rows[0][0]
b = rows[0][1]
return (a, b)
#----------------------------------------------------------#
# principal code #
#----------------------------------------------------------#
PATH=os_path.abspath(os_path.split(__file__)[0])
os.chdir(PATH)
log('start')
log(PATH)
txt = str(query_temp()[0])
log(txt)
crontab:
*/1 * * * * python /home/pi/Documents/180623_test.py