Ldfa Posté(e) le 30 décembre 2019 Partager Posté(e) le 30 décembre 2019 « [test] Caméra connectée d'intérieur Tycam 1000 (modifié le 16 mai 2017 à 10:14)J'ai conçu un script bash permettant de sauvegarder rapidement les fichiers importants de mon Raspberry Pi vers mon NAS Synology. Vous l'attendiez, voici enfin bm-PiBackup 🙂 Principe de fonctionnement A partir d'une liste de fichiers et/ou de dossier le Raspberry crée une archive tar.gz qui est stockée sur un partage de fichiers CIFS (SMB) monté à la volée. En effet il n'est pas rare qu'une carte microSD vous claque dans les doigts : aurevoir tous les scripts sympas ou les fichiers de configuration sur lesquels vous avez passé des heures ! Le script est stocké sur mon github : backupToNas.sh (raw) Téléchargez-le et ajoutez le droit d'exécution. Variables Modifiez les variables en début de script, à savoir : PARTAGE : chemin CIFS (SMB) PARTAGEMNT : point de montage local pour le partage (sera créé s'il n'existe pas) PARTAGENAME : description purement visuelle et sans incidence sur le déroulement du script USERNAME : nom d'utilisateur ayant le droit d'écrire sur le partage CIFS PASSWORD : mot de passe de USERNAME Ce partage peut bien sûr être tout et n'importe quoi, un Windows Server comme un NAS. C'est mon cas puisque mon Synology de backup assure ce rôle à la maison. Pour éviter de saisir un identifiant / mot de passe en clair d'un compte important j'ai créé un compte dédié pour le Raspberry Pi. Ce compte a uniquement les droits lecture/écriture dans un partage dédié qui se nomme "pi_backup"ayant pour login "raspberry" et "backup" comme mot de passe. Enfin il faut préciser les fichiers ou dossiers que vous souhaitez sauvegarder (l.90 environ). Le slash de fin n'est pas obligatoire mais peut vous aider à différencier les fichiers des dossiers. Le script contient des exemples : tar zcf "$TAR" \/etc/cron.daily \/etc/cron.hourly \/etc/cron.monthly \/etc/init.d \/etc/network/interfaces \/etc/modules \/etc/modprobe.d/ \/etc/udev \/etc/wpa_supplicant \/var/www \/home/pi \/tmp/crontab \/root/*.sh* \/root/.bash* \--exclude '/home/pi/Desktop' \--exclude '/home/pi/motion' \--exclude '/home/pi/photos' \--exclude '/home/pi/homebridge' \--exclude '/home/pi/.node-*' \> /dev/null 2>&1 Pour éviter de surcharger le CPU du Pi vous pouvez faire des exclusions comme le montre les dernières lignes "--exclude". Le joker "*" étant supporté. Vous remarquerez que je ne sauvegarde pas mon dossier root en totalité mais seulement les scripts sh et les fichiers ".bash*" (ex : .bash_profile, .bashrc etc.). Résultat Le résultat du backup sera stocké sous cette forme : hostname_raspberryPi-AAAA-MM-JJ_HHhMM.tar.gz Exemple : domoPi-2017-05-15_22h09.tar.gz L'archive de destination reprendra l'arborescence d'origine, c'est pourquoi j'aime beaucoup ce mode de fonctionnement. Conclusion Je vous laisser tester et améliorer le script si besoin, j'ai mis un peu de couleur et le "OK!" apparaît vraiment au moment où l'action en question s'est réalisée. Avant j'ajoutais bêtement un "OK" à la ligne mais je trouve que c'est bien mieux intégré comme ça 🙂 Bien sûr ce script peut servir dans bien d'autres occasions et pas seulement avec un Raspberry Pi. Attention tout de même à la compression en tar.gz qui est assez consommatrice en ressources. Avec un Raspberry Pi B+ connecté en WiFi 54 mbps le script sauvegarde 120 mo en 13 minutes (1850 fichiers). Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.