Sauvegarde/restauration configuration Pynab
#1
Lightbulb 
Je voudrais mettre en place une procédure de clonage (clonage de la carte SD) de lapin, en préservant les réglages spécifiques à chaque lapin.
Quelqu'un peut-il m'indiquer où sont conservés les réglages Pynab spécifiques à chaque lapin ?:
- langue;
- identifiant Mastodon;
- heures de lever/coucher;
- fréquences Tai chi et humeurs;
- réglages météo et qualité de l'air.

Plus précisement, puisque je suppose (?) que ces réglages ne sont pas stockés dans des fichiers de configuration, mais dans la base de données PostgreSQL utilisée par Pynab/Django, quelles seraient les procédures (scripts PostgreSQL) pour sauvegarder/restaurer la base de données spécifique à un lapin?

Merci.

Bon...
En l'absence de procedure plus 'fine', je suppose que la sauvegarde/restauration (dans une archive tar compressée par exemple) du répertoire /var/lib/postgresql/11/main fera l'affaire...

Bien...
Après étude du setup Pynab et de la documentation PostgreSQL, voici (archive jointe) deux scripts pour effectuer, conformémement (?) aux règles de l'art PostgreSQL,
la sauvegarde:
Code :
pi@Nabaztag:~ $ backup_pynab_db -h
Usage: backup_pynab_db [-u DB_USER] [-d DB_NAME] [-b DB_BACKUP_FILE]
    Backup (as user DB_USER) PostgreSQL database DB_NAME to file DB_BACKUP_FILE
    defaults: DB_USER=postgres DB_NAME=pynab DB_BACKUP_FILE=pynab.db.sql
et la restauration de la base de données Pynab:
Code :
pi@Nabaztag:~ $ restore_pynab_db -h
Usage: restore_pynab_db [-u DB_USER] [-b DB_BACKUP_FILE]
    Restore (as user DB_USER) PostgreSQL database from file DB_BACKUP_FILE
    defaults: DB_USER=postgres DB_BACKUP_FILE=pynab.db.sql
N.B.:
  • La sauvegarde peut se faire à la volée (les services Pynab du Lapin étant actifs). D'après la documentation PostgreSQL, la sauvegarde est cohérente (basée sur un 'snapshot' de la base).
  • Par contre la restauration doit se faire sans accès concurrents à la base de données (pour pouvoir la re-créer).  Il faut donc (ceci est pris en charge par le script) préalablement arrêter les services Pynab, et les relancer ensuite.
A noter:
On peut faire une sauvegarde sur un lapin et restaurer cette sauvegarde sur un autre (dans la mesure ou ils ont des versions de Pynab identiques - ou du moins compatibles du point de vue de la base de données -).
Ceci permet de cloner la "personnalité" (configuration Pynab) d'un lapin, sans cloner la carte SD, et donc en préservant (entre autres) la configuration réseau (hostname, réglages WiFi) du clone.

04-07-2020:  Les scripts sont maintenant sur GitHub: pynab_cli
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)