Backup d'un home linux

De Adadov.net wiki

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]