Voilà un aide-mémoire pour cloner la carte SD de votre pi car, on le sait, les cartes SD ont une fâcheuse tendance à rendre l’âme.
1) Il faudra déjà activer NFS sur votre Synology (j’ai essayé sur un QNAP sans succès) et créer un partage NFS (je l’ai appelé BACKUPS_JEEDOM)
2) Vérifier que le NFS et Pipe viewer (pour voir l’avancement de la sauvegarde) sont installés avec
dpkg -l | grep nfs-common
dpkg -l | grep pv
(sinon les installer avec apt-get install nfs-common et apt-get install pv)
3) Sur le pi, créer un dossier de montage (par ex Backup_NAS) avec et l’ajouter au FSTAB
sudo mkdir /mnt/Backup_NAS
sudo nano /etc/fstab
et ajouter au fichier fstab cette ligne:
192.168.1.4:/volume1/BACKUPS_JEEDOM /mnt/Backup_NAS nfs rw,user 0 0
(192.168.1.4 étant l’adresse réseau de votre synology
BACKUPS_JEEDOM étant votre dossier de partage NFS sur votre synology
Backup_NAS étant le dossier créé sur le Raspberry
4) Tester si tout va bien
– le dossier sur le NAS
sudo mount -a
sudo df
– l’écriture sur le NAS
sudo mkdir /mnt/Backup_NAS/essaidedossier
Pour mes 2 Raspberry, j’ai eu cette erreur
mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use ‘-o nolock’ to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified
On résout le problème avec cette commande
/etc/init.d/rpcbind start
On teste le clonage sur le NAS avec cette commande (à adapter à vos dossiers)
sudo dd if=/dev/mmcblk0 bs=4M | sudo pv -treb | sudo dd of=/mnt/Backup_NAS/clone_SD.img && sync
Comptez environ 25 min pour une carte de 8Go en ethernet et 30 min en wifi
5) Installer le script
Ce que je fais, c’est que je monte le PI sur mon Mac (voir cet article)
Créez-vous un dossier scripts par exemple dans le dossier home
Créez un fichier CloneSD.sh et ajoutez-y ce code à adapter à votre config
#!/bin/bash
etc/init.d/rpcbind start #si erreur NFS
sudo mount -a
DATE=$(date + »%Y-%m-%d »)
BoxToClone=NOM_PIFileName=SD-$BoxToClone\_$DATE.img #sans compression
#FileName=SD-Backup_$BoxToClone\_$DATE.img.gz
File=/mnt/Backup_NAS/$FileName
#arrêt de Jeedom
sudo service apache2 stop
sudo service mysql stopsudo dd if=/dev/mmcblk0 bs=4M | sudo pv -treb | sudo dd of=$File && sync
#sudo dd if=/dev/mmcblk0 bs=4M | sudo gzip -1 -| sudo dd of=$File && syncsudo reboot
6) Rendez exécutable le script
sudo chmod u+x /home/scripts/CloneSD.sh
Testez le script avec cette commande
sudo bash /home/scripts/CloneSD.sh
7) Automatiser le clonage
sudo crontab -e
et ajouter cette ligne pour sauvegarder tous les mois le 1er à 1h du matin
0 1 1 * * sh /home/scripts/CloneSD.sh
N’oubliez pas d’enregistrer.