Il y a quelques temps, j’avais publié des articles traitant de la sauvegarde et des moyens pour en réduire la taille.
Voici un petit résumé de la méthode que j’ai adopté, après pas mal de tâtonnements, pour effectuer un backup hebdomadaire de mon Raspberry Pi.
Vous pouvez télécharger mon script ici : RPi-Backup.sh
Copiez-le dans le dossier de l’utilisateur pi de votre Raspberry :
/home/pi/
Rendez ensuite le script exécutable :
$ sudo chmod u+x /home/pi/RPi-Backup.sh
On va ensuite ajouter une tâche dans Cron :
$ sudo crontab -e
Et on ajoute cette ligne au fichier :
30 3 * * 1 /home/pi/RPi-Backup.sh > /home/pi/RPi-Backup.log 2>&1
La tâche sera exécutée à 3h30 (30 minutes, 3 heures) du matin tous les lundis (dimanche = 0, lundi = 1, …).
On quitte (ctrl+x
) et on enregistre les modifications.
Puis, on édite le fichier pour l’adapter à vos besoins :
$ sudo nano /home/pi/RPi-Backup.sh
#!/bin/sh echo "Exécution du script de Backup" echo "=============================" echo "$(date +%Y%m%d-%T)" echo # Mémorisation de l'heure du début du backup hback=$(date +%H%M) # Arret des services echo echo "$(date +%Y%m%d-%T) : Arret des services" echo sudo service minidlna stop sudo service transmission-daemon stop sudo service nginx stop sudo service mysql stop sudo service php5-fpm stop sudo service fr24feed stop sleep 3 # Suppression des paquets périmés echo echo "$(date +%Y%m%d-%T) : Suppression des paquets périmés" echo sudo apt-get autoclean sleep 3 # Suppression du contenu de la corbeille de Root echo echo "$(date +%Y%m%d-%T) : Suppression du contenu de la corbeille de Root" echo sudo rm -r -f -v /root/.local/share/Trash/files/* # Suppression du contenu de la corbeille de Pi echo echo "$(date +%Y%m%d-%T) : Suppression du contenu de la corbeille de Pi" echo sudo rm -r -f -v /home/pi/.local/share/Trash/files/* sleep 3 # Suppression du contenu de UpDraft Plus echo echo "$(date +%Y%m%d-%T) : Suppression du contenu de UpDraft Plus" echo sudo rm -r -f -v /var/www/wordpress/wp-content/updraft/*.gz sleep 3 # Remplissage de l'espace libre par des zéros echo echo "$(date +%Y%m%d-%T) : Remplissage de l'espace libre par des zéros" echo sudo sync sudo dd if=/dev/zero of=/home/pi/Desktop/zero.small.file bs=1024 count=102400 sudo dd if=/dev/zero of=/home/pi/Desktop/zero.file bs=1024 sudo sync sleep 30 sudo sync sleep 3 # Suppression des fichiers de zéros echo echo "$(date +%Y%m%d-%T) : Suppression des fichiers de zéros" echo sudo rm -f -v /home/pi/Desktop/zero.small.file sudo rm -f -v /home/pi/Desktop/zero.file sleep 3 # Exécution du backup echo echo "$(date +%Y%m%d-%T) : Exécution du backup" echo sudo dd bs=4M if=/dev/mmcblk0 | gzip > /media/RPi-USB-Dsk/Backups/backup-`date +%Y%m%d`-$hback.gz sleep 3 # Suppression du backup d'il y a 26 semaine (182 jours ou 6 mois) echo echo "$(date +%Y%m%d-%T) : Suppression du backup d'il y a 26 semaine (182 jours ou 6 mois)" echo sudo rm -f -v /media/RPi-USB-Dsk/Backups/backup-$(date --date="182 days ago" +%Y%m%d)-0330.gz sleep 3 # Reprise des services echo echo "$(date +%Y%m%d-%T) : Reprise des services" echo sudo service php5-fpm start sudo service mysql start sudo service nginx start sudo service transmission-daemon start sudo service minidlna start sudo service fr24feed start sleep 3 echo echo "$(date +%Y%m%d-%T) : Fin du script Backup.sh"
Adaptez la liste des services qui seront arrêtés et redémarrés en fin de backup.
Updraft Plus est un plugin WordPress qui permet d’automatiser une sauvegarde WordPress dans le cloud selon un planning défini.
Modifiez cette ligne pour adapter le chemin vers votre disque dur ou la destination de la sauvegarde :
$ sudo dd bs=4M if=/dev/mmcblk0 | gzip > /media/RPi-USB-Dsk/Backups/backup-`date +%Y%m%d`-$hback.gz
Sur MAC, pour restaurer la sauvegarde depuis le fichier .gz
vers la carte SD, procédez comme suit :
On insert la carte SD dans le lecteur du Mac et on recherche son nom :
$ diskutil list
Ici, la carte SD se nome /dev/disk5
On va maintenant démonter et PAS ÉJECTER la carte SD avec la commande suivante dans le Terminal
du Mac :
$ diskutil unmountDisk /dev/disk5
Attention disk5 est un exemple !
Maniez cette commande avec la plus grande prudence.
Une erreur pourrait effacer un mauvais disque.
Puis, on exécute la restauration du fichier backup vers la carte SD sur le Mac :
$ sudo gzip -dc ~/Desktop/backup-20150305-0330.gz | sudo dd of=/dev/disk5 bs=4m
Dans notre exemple, le fichier de sauvegarde est sur le bureau du Mac et se nomme : backup-20150305-0330.gz
La procédure peut durer 2h pour une carte de 16Go en fonction de la vitesse d’écriture de celle-ci et des performances du lecteur.
Durant ce temps, rien ne s’affichera dans le Terminal. Ne le quittez pas tant que la restauration n’est pas terminée.