Page 2 sur 3

Re: Backup à chaud Pi

Publié : 17 nov. 2020, 10:31
par aleph0
Y'a pas mal de réponses pour le backup de la dB, voici la méthode que j'utilise pour le backup du Pi à chaud (ie complet, toute la SD), depuis une autre machine linux que le pi :

Code : Tout sélectionner

ssh root@ip_du_pi dd if=/dev/sda | gzip -c - > backup_pi_sda.gz
Ça lit toute la sd du pi, ça l'envoi sur l'ordi de destination, ça compresse à la volée et ça sauvegarde le backup dans un fichier :-)

Évidement, y'a toujours le risque qu'un fichier soit en cours d'écriture pendant le backup, mais d'expérience ça doit être très rare car je n'ai jamais eu de problèmes en utilisant cette méthode. Pour la restauration, bien sûr, on ne peut pas le faire ainsi, il faut utiliser un lecteur de carte SD sur l'ordi qui a le backup et faire un classique

Code : Tout sélectionner

gunzip -c backup_pi_sda.gz | dd of=/dev/la_sd
Une variante consiste à ne prendre que le contenu de la partition /dev/sda1 au lieu de toute la carte sd. Faire ça ne permet pas de reflasher facilement le backup, mais permet de le "monter" sur la machine linux pour l'analyse, ou récupérer facilement des fichiers :

Code : Tout sélectionner

ssh root@ip_du_pi dd if=/dev/sda1 > backup_pi_sda1.iso
mount backup_pi_sda1.iso repertoire_de_montage -o loop
cd repertoire_de_montage
Et voilà tous les fichiers facilement accessibles !

Re: Backup à chaud Pi

Publié : 17 nov. 2020, 11:04
par pierrotori
Keros a écrit : 17 nov. 2020, 05:44 Tu sauvegardes ainsi la base de données. C'est déjà très bien ;)

Par contre, si tu as des dossiers de plugin ou des fichiers de scripts, ils ne sont pas enregistré dans cette sauvegarde. Ni tes config pour mettre certains choses en RAM, etc ...
De plus, si tu dois remonter ton installation, il faudra que tu retrouves les fichiers d'installation de DomoticZ qui tournait au moment de ta sauvegarde. Lors d'un changement de version de DomoticZ, il est possible que la base de donnée soit modifiée : certains ont eu des problèmes en essayant de recharger des sauvegardes sur des nouvelles installations (il y a des sujets là dessus).
En effet il y a la base domoticz et ces répertoires de personnalisation scripts, batch ....
Et il y a le système Debian et son paramétrage
Ou faire de la haute disponibilité :)

c'est vrai qu'un iso de la carte SD à jour serait bien

Re: Backup à chaud Pi

Publié : 19 nov. 2020, 17:18
par pierrotori
suite à la lecture du titre de ce poste, j'ai mis en place le backup à chaud
https://github.com/billw2/rpi-clone

une carte SD sur port usb avec sauvegarde de la carte sd de la carte mère sur la
de mon côté
-- sudo service mysql stop
sudo service cron stop
-- sudo service apache2 stop
sudo service domoticz stop
sudo service dzga stop

execution de sudo rpi-clone sda -f la première fois
puis 1 fois par jour sudo rpi-clone sda

Re: Backup à chaud Pi

Publié : 19 nov. 2020, 19:17
par Chrominator
mysql ?!
Apache ?!

On est pas que sur du Domoticz, ou alors il est passé au stand de customisation :lol:

Content que tu aies trouvé ton bonheur.

Re: Backup à chaud Pi

Publié : 19 nov. 2020, 20:32
par pierrotori
Tu utilises quel solution pour faire une sauvegarde ?

Re: Backup à chaud Pi

Publié : 19 nov. 2020, 21:13
par f-d-m
pierrotori a écrit : 19 nov. 2020, 20:32 Tu utilises quel solution pour faire une sauvegarde ?
Perso j'ai des serveurs dédiés chez OVH. Parmi ceux-ci un serveur à base ARM avec un disque dur de 2 TB à 6€ par mois HT. Ce serveur reçoit des backup de divers serveurs dont ceux de mon serveur principal à la maison (dossiers, photos, etc). Pour le moment il y a un KS-3 à 8€ HT chez https :\\www.kimsufi.com\fr\serveurs.xml .
Je pousse mes backups avec rsync avec versions, déduplication des doublons, ceci sur une arborescence entièrement encryptée.


Je considères que tu es sur un Raspberry Pi.

1) full backup de la carte entière
Une fois que tu commences à construire des trucs autour de Domoticz, une installation de mosquitto, peut-être d'autres packages et scripts, ça devient nécessaire de faire un "full backup" de temps en temps.
J'ai troqué ma carte SD de 8 GB contre un SSD de 250 GB mais j'ai gardé la partition de 8 GB. Tous les 6 jours j'envoie une copie brute du disque depuis le secteur zéro jusqu'à la fin de la partition de 8 GB.

2) au niveau fichiers
Depuis le raspi Domoticz j'envoie les répertoires /home , /etc , /usr/local chaque jour.
Pas plus tard qu'aujourd'hui j'ai dû restaurer ma db en raison d'un bug domoticz (supprimer une scène depuis l'écran devices, ça supprime le device qui a le même numéro que la scène à supprimer et la scène est toujours là)

3) au niveau de la base de données Domoticz ... je n'ai jamais eu le cas, mais faire un backup d'une db quand le système tourne c'est toujours risqué.
D'où mon post ci-dessus où insérer l'une ligne ou l'autre dans un script lancé par cron
sqlite3 domoticz.db .dump | gzip > domoticz.dump.`date +%A`.sql.gz
sqlite3 domoticz.db .dump | gzip > domoticz.dump.week.`date +%W`.sql.gz

Ca c'est une transaction qui donne un état fiable, et tu as les commandes en SQL.

Re: Backup à chaud Pi

Publié : 19 nov. 2020, 22:38
par pierrotori
En effet avec domoticz il faut prévoir
une sauvegarde journalière de la DB à 10 jours pour problème si base corrompu
un clone de la carte SD si crash de celle ci

j'utilise tjs une carte SD avec un maximum de chose montée en RAM sauf la DB dans la dernière version

Je m'interroge de l'utilité de sauvegarder en plus des fichiers systèmes ou script (ton étape 2) puisque la carte est clonée tous les jours ?

le seul problème de rpi-clone c'est qu'il faut répondre yes pour le clone et faire enter à la fin pour valider le umount
Du coup on ne peut pas l'automatiser
par contre sur une carte SD de qualité moyenne il faut 10 min pour réaliser le delta du clone, ce qui est assez sympa

Re: Backup à chaud Pi

Publié : 20 nov. 2020, 11:16
par f-d-m
Je clone la carte vers une machine Windows tous les 6 jours avec le script suivant placé dans un cron quotidien

copycard.sh

Code : Tout sélectionner

#!/bin/bash
mount.cifs //192.168.zz.tt/backup/ /mnt -o user=xxxx,pass=yyyy
if [ -w /mnt/rpi3.sdcard.ok ]
then
  now=`date +%s`
  old=`stat -c %Y /mnt/rpi3.sdcard.ok`
  let delta=$now-$old
  echo old $old now $now delta $delta
  if [ $delta -lt 450000 ]
   then
    echo previous run less that 5.2 days ago, skipping . . .
   else
    date
    sync
#    dd if=/dev/mmcblk0 of=/mnt/rpi3.sdcard.raw.`date "+%A"`
    dd if=/dev/sda of=/mnt/rpi3.sdcard.raw.`date "+%A"` count=15130624
    date
    touch /mnt/rpi3.sdcard.ok
   fi
else
  echo Cannot stat /mnt/rpi3.sdcard.ok ... Exiting.
fi
umount /mnt

Re: Backup à chaud Pi

Publié : 20 nov. 2020, 11:56
par pierrotori
ton traitement prend combien de temps ?
Je viens de refaire un test de synchro -10 min

Re: Backup à chaud Pi

Publié : 20 nov. 2020, 21:02
par f-d-m
Voici le log de la dernière copie

Code : Tout sélectionner

old 1605141669 now 1605659401 delta 517732
Wed 18 Nov 01:30:01 CET 2020
15130624+0 records in
15130624+0 records out
7746879488 bytes (7.7 GB, 7.2 GiB) copied, 665.573 s, 11.6 MB/s
Wed 18 Nov 01:41:07 CET 2020
C'est pile poil le 100 mégabits du rpi3.