Sauvegarde et exportation des scripts LUA de la DB
Re: Sauvegarde et exportation des scripts LUA de la DB
c'est bien plus facile à sauvegarder
ou faire appel à des fonctions contenu dans un autre fichier (si je me souviens bien)
Re: Sauvegarde et exportation des scripts LUA de la DB
L'utilisation des scripts dans les dossiers est, à mon avis, pour une utilisation plus avancée :
- Tu gères tes scripts comme des fichiers : tu peux ainsi faire du suivi de version.
- Par contre, obligation d'en faire des sauvegardes en plus de la base de donnée de DomoticZ
- Tu peux utiliser ton éditeur de code préféré
- Je pense que tu dois pouvoir avoir tes scripts sur Github et les téléverser dans les dossiers
- La gestion des Triggers doit être faite dans le nom des fichiers (pour le LUA)
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Re: Sauvegarde et exportation des scripts LUA de la DB
Merci

RaspberryPi - RFLink - Zwave - WH2600
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Re: Sauvegarde et exportation des scripts LUA de la DB
J'ai fait une modification au script publié un peu plus haut dans ce sujethttps://easydomoticz.com/forum/viewtopi ... 190#p97190
Par sécurité, en plus de la sauvegarde automatique, une fois par mois je transférai la dernière sauvegarde effectué dans un répertoire dans Google Drive. Cette semaine, j'ai découvert que l'on pouvait synchroniser Google Drive avec Raspbian. J'ai donc fait une légère modification à mon script.
Le fonctionnement reste le même mais une fois la sauvegarde terminé, on transfère cette sauvegarde sur Google Drive. J'aurais aimé écrire directement dans le répertoire de Google Drive mais il y a des problèmes de droit d'utilisateur depuis Domoticz (root au lieu de pi). Le plus simple que j'ai trouvé est donc de transférer les fichiers une fois la sauvegarde faite.
Pour connecter Google Drive (ou votre service cloud préférée) j'utilise rclone dans le terminal
Il faut suivre le déroulé en respectant les choix par défaut. En cherchant sur internet, on trouve plusieurs tuto pour l'utiliser, mais le mieux reste quand même d'aller sur le site de https://rclone.org/#providers et de suivre la procédure correspondant à votre service cloud (que l'on obtient en cliquant sur "config" au bout de la ligne).
Une fois la connexion établie (gdrive), il faut la relier à un répertoire ($HOME/mnt/gdrive).
Ca y est le script automatique fonctionne !
Le seul problème c'est que, s'il faut redémarrer votre machine, il faudra recommencer la commande :
C'est pourquoi il faut rajouter une ligne dans crontab
Par sécurité, en plus de la sauvegarde automatique, une fois par mois je transférai la dernière sauvegarde effectué dans un répertoire dans Google Drive. Cette semaine, j'ai découvert que l'on pouvait synchroniser Google Drive avec Raspbian. J'ai donc fait une légère modification à mon script.
Le fonctionnement reste le même mais une fois la sauvegarde terminé, on transfère cette sauvegarde sur Google Drive. J'aurais aimé écrire directement dans le répertoire de Google Drive mais il y a des problèmes de droit d'utilisateur depuis Domoticz (root au lieu de pi). Le plus simple que j'ai trouvé est donc de transférer les fichiers une fois la sauvegarde faite.
Code : Tout sélectionner
--Sauvegarde les scripts à 5h01
if Timer == '05:01' then
-- retourne le jour de l'année ex: "365"
local jour = os.date("%j")
local logs = '/home/pi/domoticz/scripts/lua/logs/'
local gdrive = '/home/pi/mnt/gdrive/Domoticz/lua/logs/'
SaveTable('/home/pi/domoticz/domoticz.db', 'EventMaster', logs..jour..'_')
os.execute('sudo -u pi mv '..logs..'* '..gdrive)
endCode : Tout sélectionner
rclone configUne fois la connexion établie (gdrive), il faut la relier à un répertoire ($HOME/mnt/gdrive).
Code : Tout sélectionner
mkdir mnt
cd mnt
mkdir gdrive
rclone mount gdrive: $HOME/mnt/gdriveLe seul problème c'est que, s'il faut redémarrer votre machine, il faudra recommencer la commande :
Code : Tout sélectionner
rclone mount gdrive: $HOME/mnt/gdriveCode : Tout sélectionner
crontab -e
# Ajouter la ligne ci-dessous en fin de fichier
@reboot rclone mount gdrive: $HOME/mnt/gdrive/