Export certaines données de la base vers un fichier

Forum dédié aux questions concernant la configuration de votre serveur sous Linux
jamon66
Messages : 6
Inscription : 28 mars 2016, 22:09

Re: Export certaines données de la base vers un fichier

Message par jamon66 »

Bonjour,

Je voudrais pouvoir sauvegarder certaines données de DOMOTICZ vers un fichier CSV. j'utilise une tache CRON avec :
57 23 * * 1 sqlite3 -header -csv /home/pi/domoticz/domoticz.db "select * from Meter;" > /home/pi/TELEINFO/`date +%y%m%d`_EDF.csv

2 difficultés pour moi :
La tache CRON ne s’exécute pas. Quand je fais crontab -e il m'ouvre un répertoire tmp, prend bien mes modifications mais rien.
La commande s’exécute bien manuellement.

Si je lance la commande manuellement le nom du fichier créé ne tient pas compte des %y il s'appelle date+%y%m%d_EDF.csv littéralement.

Quelqu'un aurait il une piste ? Merci d'avance
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Export certaines données de la base vers un fichier

Message par vil1driver »

Salut,

il est préférable de mettre le chemin vers un script dans crontab.
lancement de backupEDF.sh tous les lundi à 23h57

Code : Tout sélectionner

57 23 * * 1 /home/pi/domoticz/backupEDF.sh
backupEDF.sh

Code : Tout sélectionner

#!/bin/bash
/usr/bin/sqlite3 -header -csv /home/pi/domoticz/domoticz.db "select * from Meter;" > /home/pi/TELEINFO/$(date +%y%m%d)_EDF.csv
bien sur donner au script les droits d'exécution

Code : Tout sélectionner

sudo chmod +x backupEDF.sh
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
jamon66
Messages : 6
Inscription : 28 mars 2016, 22:09

Re: Export certaines données de la base vers un fichier

Message par jamon66 »

Merci Vil1driver pour ton aide,

si je lance le bash manuellement :
Le fichier se crée avec le bon nom cette fois ci . Je crois que j'ai un problème avec les permissions de mon répertoire TELEINFO ou à la création du fichier. Le fichier se crée mais si je veux le voir je dois cliquer sur "appliquer récursivement le groupe, le proprio et les permis" depuis les propriétés du répertoire dans winscp.

depuis crontab :
je ne sais pas si il se lance mais le fichier n'est pas créé même en modifiant les permissions récursivement.

Je ne suis vraiment pas fort avec linux mais je pense ne pas etre loin, merci pour toute l'aide que tu pourras m'apporter c'est vraiment rageant vu les possibilités qu'apporte ce materiel.

Encore merci.
jamon66
Messages : 6
Inscription : 28 mars 2016, 22:09

Re: Export certaines données de la base vers un fichier

Message par jamon66 »

Bonjour,

J'avance dans mes recherches :

j'ai écarté CRONTAB en exécutant des taches simples cela fonctionne

j'ai écarté les permissions sur les répertoires créés en utilisant /tmp

j'an arrive donc à :
le script sh ou la commande fonctionnent ( cad créent le fichier export ) si je les lance depuis la ligne de commande mais ne s’exécutent
pas depuis cron. Je creuse autour du Shell ou bash mais c'est encore obscur pour moi.

un avis qui pourrait m’éclairer ??
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Export certaines données de la base vers un fichier

Message par vil1driver »

à aucun moment tu ne fais 'sudo' dans tout ça ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
rimram31
Messages : 659
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: Export certaines données de la base vers un fichier

Message par rimram31 »

jamon66 a écrit :... si je les lance depuis la ligne de commande mais ne s’exécutent pas depuis cron...
vil1driver l'a indiqué je crois plus haut, met des chemins absolus a TOUS les appels d'exécutables. Tu utilises sqlite3, ou est-il installé ? ($ which sqlite3 ?)

La différence entre un appel crontab et un appel en ligne de commande tient a ce qu'on appelle sous Linux l'environnement, un ensemble de variables dites justement d'environnement. Par exemple la variable PATH qui contient une liste de répertoires et qui permet d'utiliser des raccourcis a l'exécution d'un programme (de ne pas rappeler le chemin complet), il y en a d'autres comme la variable SHELL qui est le shell utilisé "par défaut" ... Tapes env en ligne de commande pour voir.

Donc écrire ses commandes dans un fichier, le commencer par un #!/bin/... selon le shell souhaité (sh, bash, csh ...), appeler tous les outils/scripts en utilisant un chemin absolu (/usr/bin/sqlite3 par ex) et/ou définir les variables d'environnement utiles. Ajouter au besoin des logs en redirigeant des "echo" dans un fichier >>/tmp/<mon fichier de log> pour debugger.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Export certaines données de la base vers un fichier

Message par patrice »

rimram31 a écrit :
jamon66 a écrit :... si je les lance depuis la ligne de commande mais ne s’exécutent pas depuis cron...
vil1driver l'a indiqué je crois plus haut, met des chemins absolus a TOUS les appels d'exécutables. Tu utilises sqlite3, ou est-il installé ? ($ which sqlite3 ?)

La différence entre un appel crontab et un appel en ligne de commande tient a ce qu'on appelle sous Linux l'environnement, un ensemble de variables dites justement d'environnement. Par exemple la variable PATH qui contient une liste de répertoires et qui permet d'utiliser des raccourcis a l'exécution d'un programme (de ne pas rappeler le chemin complet), il y en a d'autres comme la variable SHELL qui est le shell utilisé "par défaut" ... Tapes env en ligne de commande pour voir.

Donc écrire ses commandes dans un fichier, le commencer par un #!/bin/... selon le shell souhaité (sh, bash, csh ...), appeler tous les outils/scripts en utilisant un chemin absolu (/usr/bin/sqlite3 par ex) et/ou définir les variables d'environnement utiles. Ajouter au besoin des logs en redirigeant des "echo" dans un fichier >>/tmp/<mon fichier de log> pour debugger.
Oui , voila tout est dit
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
jamon66
Messages : 6
Inscription : 28 mars 2016, 22:09

Re: Export certaines données de la base vers un fichier

Message par jamon66 »

Merci à tous pour vos conseils, en prenant soin de bien mettre les chemins complets et corrects, tout est rentré dans l'ordre.

Encore merci.
prcedric
Messages : 1
Inscription : 18 mars 2017, 12:26

Re: Export certaines données de la base vers un fichier

Message par prcedric »

fredclo a écrit :Bonjour,

je me réponds à moi-même au cas où ca pourrait aider certains.
J'ai réussi à faire ce que je voulais, c'est à dire une tâche CRON, toutes les semaines, pour exporter une table sur un NAS, et ainsi conserver les bases température et conso EDF qui sont alimenter toutes les 5 mn. Export csv tous les lundis à 23h56 et 23h57

56 23 * * 1 sqlite3 -header -csv /home/pi/domoticz/domoticz.db "select * from Temperature;" > /media/votreDossierNAS/`date +%y%m%d`_TEMP.csv

57 23 * * 1 sqlite3 -header -csv /home/pi/domoticz/domoticz.db "select * from MultiMeter;" > /media/votreDossierNAS/`date +%y%m%d`_EDF.csv
Bonjour,

Nouveau sur ce forum et dans domoticz. Je suis avec un RPI3 et RFLINK, un montage optocoupleur en RF433 pour la teleinfo edf et tout cela dans Domoticz.
Je vois bien les données heures creuses et pleines ça c'est nickel.
Par conrtre, dans les logs on ne voit que la journée active et j'aurais moi aussi besoin de faire des étude sur certains jours précédents que je n'ai pas enregistrées.
Ne sachant pas coder, je m'adresse à vous car je sais copier coller et taper au clavier mais par exemple si je veux faire ce que Fredclo à écrit, je ne sais pas avec quel application je doit taper ce code et encore moins ce qu'est "cron".

Est-ce que l'un d'entre vous aurait la patience et le temps de m'expliquer comment faire juste pour sauvegarder ces données....

Par avance merci.
thuglife
Messages : 35
Inscription : 28 janv. 2017, 23:08

Re: Export certaines données de la base vers un fichier

Message par thuglife »

Bonjour,

En faisant ceci, nous exportons 1 journée au pas de 5min, est-il possible d'exporter une semaine au pas de 5 min ?

Merci
Répondre