Ayant enfin reçu mon Raspberry Pi 4 + SSD , j’ai refait une installation complète de Gladys et je commence à installer d’autres services sur mon Raspberry.
Je sais que la base de données Gladys est sauvegardée dans Gladys Plus , mais je me pose la question des autres données / services.
Comment gérez-vous les sauvegardes ?
copie du disque une fois de temps en temps ?
script de copie à la main (rsync) vers une autre machine (dans le cloud par exemple)
utilisation d’un outil de sauvegarde (syncthings, rpibackup, …)
Qu’est-ce qui exactement n’est pas gardé actuellement dans Gladys Plus ?
Il manque les fichiers du Zigbee2mqtt / MQTT en gros ?
Je me demande si il faudrait pas dans ces services être capable de retomber sur ces pattes lors d’une restauration d’un backup DB (re-créer les containers / les fichiers)
Parce qu’en soit il n’y a rien dans ces fichiers qui ne sont pas dans la DB non?
Sinon, moi sur mes serveurs j’utilise rclone: https://rclone.org/ pour tout ce qui est backup de fichier vers le cloud. Tu peux brancher ça vers n’importe quoi (Google Drive, Amazon S3, Backblaze, Dropbox, etc…)
Hello, de mon côté j’utilise un script assez basique qui fait du SCP des fichiers de gladys compressé vers un serveur. J’ai en plus intégré un ping vers le service Healthchecks qui me permet d’être alerté par un serveur Gotify en cas d’échec.
Ok! Du coup dans l’intégration Zigbee2mqtt il faudrait idéalement une sorte de « routine de démarrage » qui vérifie que le container est bien lancé, etc… et si il y a pas ce fameux fichier configuration.yaml, le re-créé depuis la DB on est d’accord?
Je pense pas nécessairement que ce soit lié à Gladys Plus la todo du coup, si on développe ça côté Zigbee2mqtt ça permettra à quelqu’un qui fait ses sauvegardes soit même de relancer une instance à partir de sa DB
Bonjour,
Je rebondis sur ce message de @Albenss, parce que je voudrais mettre en place une sauvegarde de cette façon-là moi aussi. Comme je n’utilise pas GladysPlus, quels sont les dossiers/fichiers que je dois sauvegarder pour pouvoir les restaurer si mon Raspberry crashe et que je dois repartir d’une image Gladys Raspbian toute neuve ?
Après attention lors d’un backup “à chaud”, Gladys écrit dans une base de donnée SQLite en WAL mode, et donc il y a 3 fichiers de DB. Si tu fais un backup qui prend les 3 fichiers en séquentiel, tu auras une DB corrompue
Le mieux est d’utiliser le CLI de SQlite3 pour dupliquer la DB dans un unique fichier avant de la sauvegarder
Merci pour ces précisions.
J’imagine que je peux aussi faire un “docker container stop gladys” avant de sauvegarder le dossier en question, puis de relancer avec un “docker container start gladys” ?
le CLI sqlite3 est déjà présent dans l’image Docker Gladys (pour les backups Gladys Plus). Il peut-être réutilisé au besoin.
Rclone par contre à mon avis c’est clairement à l’utilisateur de le mettre en place si il le souhaite, c’est un tool très dev à configurer, si l’utilisateur veut l’installer il peut mais je pense pas que ce soit à nous de l’inclure (ni dans l’image Raspberry Pi OS, et encore moins dans l’image Docker), on reste minimaliste sur les dépendances
Si ça peut donner des idées, de mon côté je fais des snapshots du système de fichier (btrfs), que je sauvegarde de manière chiffrée via Restic sur différents médias (cloud/NAS/disque externe, selon la data).
Les snapshots me permettent de sauvegarder les DB sans interruption de service et sans trop de risque de perte de données. Attention néanmoins, c’est une technique un peu avancée qui nécessite de jouer avec les volumes/partitions/système de fichier, le risque de perte de données est bien réel.
Par ailleurs, je vois que vous évoquez Syncthings. C’est un super logiciel, mais il ne fait que de la réplication de données, pas de la sauvegarde ! Ça peut paraître proche, mais ce sont bien deux choses complètement différentes. Si un fichier vient à être corrompu sur un support, cette corruption risque fortement de se propager aux autres stockages synchronisés. Idem pour la suppression d’un fichier.
À proscrire, donc, pour de la sauvegarde.