Sauvegarde automatisée à base de règle Udev
jeudi 1 janvier 1970 à 01:00Objectif : quand je branche un disque dur externe qui est automatiquement monté, lancer une sauvegarde.
Pour ce, une méthode efficace et fiable pour y parvenir et d'utiliser udev (pour détecter le branchement du disque) et rsync ou BorgBackup (pour effectuer la sauvegarde).
1. Identifier le disque dur externe
Quand on branche le disque dur externe, on utilise la commande suivante pour identifier le nom de périphérique
$ lsblk -o NAME,UUID,MOUNTPOINT sda └─sda1 57A0271E7039BA93 /media/genma/SSD_EXTERNEL'UUID ou le nom du périphérique (ex : /dev/sda1) et le point de montage (/media/genma/SSD_EXTERNE) seront nécessaires.
2. Création d'un script de sauvegarde
Création d'un un scripts Bash /home/genma/ScriptSauvegardeAuto.sh qui effectuera la sauvegarde.
En utilisant Rync et Borg :
#!/bin/bash SOURCE="/home/genma/" # Remplacez par le dossier à sauvegarder DESTRSYNC="/media/genma/SSD_EXTERNE/Sauvegarde/Rsync/" # Remplacez par le point de montage de votre disque externe DESTBORG="/media/genma/SSD_EXTERNE/Sauvegarde/Borg/" # Remplacez par le point de montage de votre disque externe" LOG="/media/genma/SSD_EXTERNE/Sauvegarde/Sauvegarde_automatique.log" echo "Début de la sauvegarde : $(date)" >> "$LOG" rsync -av --delete "$SOURCE" "$DESTRSYNC" >> "$LOG" 2>&1 echo "Fin de la sauvegarde : $(date)" >> "$LOG" echo "Début de la sauvegarde Borg : $(date)" >> "$LOG" borg create $DESTBORG::Borg_{now} "$SOURCE" -v --progress --list --stats #>> "$LOG" 2>&1 echo "Fin de la sauvegarde Borg: $(date)">> "$LOG"On rende le script exécutable :
$ chmod +x /home/genma/ScriptSauvegardeAuto.shOn lance le script à la main et on regarde les logs et on vérifie que tout marche bien.
Si oui on passe à la suite.
3. Configurer udev pour déclencher le script
udev permet de détecter quand un périphérique est branché.
On va créer une règle udev via un fichier /etc/udev/rules.d/85-sauvegarde-automatique.rules avec la ligne suivante (remplacez idVendor et idProduct par ceux de votre disque, que l'on a trouver avec lsusb) :
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}=="votre-uuid-du-disque", RUN+="/chemin/vers/votre_script.sh"Remplacez votre-uuid-du-disque par l'UUID de votre disque externe.
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}=="57A0271E7039BA93", RUN+="/media/genma/SSD_EXTERNE/Sauvegarde/Script_UDEV.sh"4. Recharger les règles udev
$ sudo udevadm control --reload-rules $ sudo udevadm trigger5. Testez en branchant votre disque
La sauvegarde devrait se lancer automatiquement.
6. Vérifier les logs
Consultez media/genma/SSD_EXTERNE/Sauvegarde/sauvegarde_automatique.log pour vérifier que tout s'est bien passé.
Ou les logs udev si le fichier de log ne se remplit pas pour comprendre l'erreur :
$sudo journalctl -b -u systemd-udevd | grep -i sauvegarde_automatique.log


