Sauvegarder automatiquement le système d’un raspberry pi

Sauvegarder automatiquement le système d’un raspberry pi

août 16, 2018 2 Par Aklain

Sauvegarde Raspberry Pi

Aujourd’hui, nous allons voir comment mettre en place une sauvegarde automatique du système du Raspberry Pi installé sur Raspbian (Debian optimisé pour le Raspberry Pi).

En effet, il n’est pas rare que la carte SD sur laquelle est installé le système se corrompe ou vous n’êtes pas à l’abris d’une mauvaise manipulation.
La sauvegarde sera faite au format .img ce qui permet de la restaurer simplement avec Win32 Disk Imager.


Sur ce guide, je considère que vous avez mis en place un partage SMB/CIFS sur un PC Windows ou un serveur NAS.

Montage du lecteur réseau (le partage SMB/CIFS) :

Préparation :

Installation de l’utilitaire CIFS.
sudo apt-get install cifs-utils
Création du dossier servant de point de montage
sudo mkdir /media/backup
C’est dans ce dossier que vous accéderez au partage réseau. Condidérez-le comme un raccourci sous Windows.

Montage manuel :

Pour vérifier que le partage réseau fonctionne, on teste d’abord en faisant un montage manuel.
sudo mount //adresse_IP_du_serveur_de_fichier/Backup/ /media/backup/ --verbose -o user='nom_d_utilisateur_autorisé_à_accéder_au_partage',pass='Le_mot_de_passe'

Montage automatique :

On va quand même pas remettre en place le montage réseau à chaque redémarrage du système, donc automatisons tout ça.
On démonte d’abord ce qui a été fait précédemment :
sudo umount /media/backup/
Puis on ouvre le fichier gérant les disques au démarrage :
sudo nano /etc/fstab
Et on insère :
//adresse_IP_du_serveur_de_fichier/nom_du_partage/ /media/backup cifs auto,username=nom_d_utilisateur_autorisé_à_accéder_au_partage,password=Le_mot_de_passe,addr=adresse_IP_du_serveur_de_fichier 0 0

Vous pouvez vous aider du contenu de /etc/mtab pour rédiger la ligne à insérer dans fstab.
On teste si ça fonctionne avec :
sudo mount -a
Et si tout vas bien, on passe à la suite…

Mise en place de la sauvegarde :

Préparation :

Créer le dossier réseau de Backup :
sudo mkdir /media/backup/Gladys
Installation de l’outil de sauvegarde :
sudo apt-get install pv
Installation de l’outil d’envoi de mail pour les notifications :
sudo apt-get install mailutils mpack ssmtp

Test de la sauvegarde (mode manuel) :
sudo dd if=/dev/mmcblk0 bs=4M | sudo pv -treb | sudo gzip -1 -| sudo dd of=/media/backup/Gladys/Backup_SD_TEST.img.gz sync

Paramétrage du compte rendu par mail :

sudo nano /etc/ssmtp/ssmtp.conf

root=mail@de_l.administrateur
mailhub=compte_smtp:port
hostname=nom_de_la_machine
AuthUser=mail@de_l.administrateur
AuthPass=mot_de_passe
FromLineOverride=YES
UseSTARTTLS=YES

Si vous utilisez Gmail avec l’authentification en deux étapes, il vous faudra un « Mot de passe d’application »

Test :
echo "Test d'envoi d'un email" | mail -s "Test mail" mail_du_destinataire

Automatisation de la sauvegarde :

Création du Script de sauvegarde automatique :

sudo nano CloneSD.sh
Y insérer :

#!/bin/bash
DATE=$(date +"%Y-%m-%d")
BoxToClone=Gladys
SdImgSize=16021192705
FileName=SD-Backup_$BoxToClone_$DATE.img
File=/media/backup/Gladys/$FileName

#sans compression : sudo dd if=/dev/mmcblk0 bs=4M of=$File && sync
sudo dd if=/dev/mmcblk0 bs=4M | sudo gzip -1 -| sudo dd of=$File.gz && sync

FileStat=$(wc -c "$File" | cut -f 1 -d ' ')

if [ $? -eq 0 ]; then
if [ $FileStat -ge $SdImgSize ]; then
Objet="($DATE) SD-Backup $BoxToClone : ERREUR"
Message="Taille du fichier $FileName incorrecte"
else
#taille OK
Objet="($DATE) SD-Backup $BoxToClone : OK"
Message="Clonage OK"
fi
else
if [ -e $File ]; then
sudo rm $File
fi

Objet="($DATE) SD-Backup $BoxToClone : ECHEC"
Message="Echec du Clonage : fichier inexistant."
fi

echo "$Message" | mail -s "$Objet" mail_du_destinataire

On rend ce script éxécutable :
sudo chmod u+x /home/pi/CloneSD.sh

Lancement périodique :

sudo crontab -e
Ajouter :
0 3 * * 1 sh /home/pi/CloneSD.sh
La sauvegarde se lancera alors tous les lundis à 3h00 du matin.

Tester :
sudo bash /home/pi/CloneSD.sh

Si tout s’est bien passé, vous récupérerez une image de votre système que vous pourrez restaurer avec Win32 Disk Imager directement sur la carte SD (en cas de besoin).

Sources :
https://domopi.eu/sauvegarde-de-la-carte-sd-du-raspberry-pi-sur-un-serveur-externe/
https://jekt.space/sauvegarder-automatiquement-le-syst%C3%A8me-de-votre-raspberry-pi-9ad0ea6848b