Backup d'un home linux
Présentation
Afin de facilement sauvegarder le Home de mes différentes machines Linux j'utilise à l'heure actuelle un disque dur externe (oui oui age de pierre toussa toussa ...). Et vu que je suis assez fainéant il me fallait une solution simple pour lancer à la main mes backup. J'ai donc simplement ajouté une fonction dans mon fichier .bashrc de mon utilisateur afin qu'il vérifie que tout est bien en ordre et backup automatiquement mon home vers le disque externe.
Afin de gérer ce qui est sauvé j'ai ajouté une liste d'exclusions, mais ça devenait peut pratique de la gérer pour chaque machine ... J'ai donc décidé de mettre le fichier contenant la liste des exclusions sur le disque dur externe, comme ça il est toujours le même quelle que soit la machine sur laquelle je me trouve.
Fonction ajoutée dans .bashrc
homeBackup() {
BACKUPFS=/media/Backup_Linux
BACKUPFOLDER=`/bin/hostname 2>&1 >/dev/null`
if [ -d $BACKUPFS ]; then
if [ ! -d "$BACKUPFS/$BACKUPFOLDER" ]; then
mkdir "$BACKUPFS/$BACKUPFOLDER"
fi
if [ -r "$BACKUPFS/exclude.txt" ]; then
rsync -auv --delete --delete-excluded --exclude-from=$BACKUPFS/exclude.txt ~ $BACKUPFS/$BACKUPFOLDER
else
echo "Impossible de trouver le fichier d'exclusions, il faut créer un fichier $BACKUPFS/exclude.txt"
fi
else
echo "Le media de backup est introuvable, est il bien branché et monté ?"
fi
}
Fichier d'exclusions
Le fichier d'exclusions contient un masque par ligne, mais comme malheureusement rsync est sensible à la casse sans que ce soit possible de le désactiver il a fallu modifier un peu la manière d'écrire les extensions. Donc .iso s'écrie .[Ii][Ss][Oo] afin que si une ou plusieurs lettres sont en majuscules, l'extension soit tout de même reconnue.
Voici donc le contenu de mon fichier :
*Trash* .wine .amsn .gvfs ImapMail *.[Ii][Ss][Oo] *[Cc]ache # Mac Files .DS_Store .HFS+* # Films *.[Mm][Pp][Gg] *.[Aa][Vv][Ii] #VirtualBox Files .VirtualBox *.[Oo][Vv][Aa] *.[Vv][Bb][Oo][Xx]* *.[Vv][Dd][Ii]