Sauvegarde de ses fichiers par Time Machine sous Linux en 3 lignes

Publié le 28 décembre 2011 par Engelleben

C’est bien beau de modifier les fichiers sur son PC, même si on a parfois la précaution de faire une sauvegarde sur un disque externe, c’est souvent en dilettante (tiens j’ai 1/4 heure devant moi, allez hop je branche mon disque externe et je sauvegarde…) malheureusement on a besoin de récupérer la version précédente du fichier que l’on vient de modifier, et la petite sauvegarde risque de ne pas être très utile car obsolète, et non différentielle (on n’y stocke souvent qu’une seule version d’un fichier).

Donc la sauvegarde incrémentale devient la solution idéale, elle permet de remonter dans le temps et ainsi retrouver tout l’historique d’un fichier pour chacune de ses sauvegardes, tout en limitant l’utilisation de l’espace nécessaire à cette sauvegarde.

A moins d’avoir un Mac (navré j’ai une dent pour leur business model) qui dispose de son utilitaire TimeMachine, comment peut on faire simple sous votre distrib Linux préférée.

rsync is watching you

rsync, le formidable outil en ligne de commande pour synchroniser des répertoires, va nous permettre de faire une TimeMachine avec 3 lignes, à mettre dans un script bash :

date=`date "+%Y%m%d%H%M%S"`
# partition des données à sauvegarder
montage=/media/donnees
# partition hébergeant la sauvegarde
timemachine=/media/bigdisk/Backups
# synchronisation
rsync -vzaP --link-dest=$timemachine/current $montage/Mes\ documents $timemachine/back-$date
# suppression du lien
rm -f $racine/current
# creation du lien qui servira pour la prochaine synchro
ln -s back-$date $racine/current

A sa première exécution, le répertoire current n’existant pas, tous les fichiers y sont donc copiés (=c’est une sauvegarde complète qui peut donc être assez longue), à l’issue en allant faire un tour dans le répertoire du 1er Novembre:

[centos /media/bigdisk/Backups/back-20111101073347/Mes documents]# ls -rtl
-rwxrwx--- 1 usr grp 190976 nov 1 7:34 engel-leben-2011.xls

Après avoir modifié notre fichier sur notre répertoire de travail, on relance notre script, un nouveau répertoire back- est créé et n’y sont copiés que les fichiers modifiés/supprimés par rapport à current, c’est une sauvegarde différentielle.

A présent dans le répertoire du 4 Novembre, notre fichier est plus récent (=rsync a copié la nouvelle version du fichier), enjoy :

[centos /media/bigdisk/Backups/back-20111104201350/Mes documents]# ls -rtl
-rwxrwx--- 1 usr grp 191260 nov 4 18:17 engel-leben-2011.xls

Reste donc à planifier notre petit script dans cronTab et se la couler douce.

et Marty remonta le temps!


Donc sur notre volume de sauvegarde on peut accèder à chaque version sauvegardée dans les répertoires back-

Y a plus de place !

A force de ne faire que des sauvegardes différentielles le disque risque d’arriver à saturation, alors il suffira de supprimer l’arborescence sous Backups, et relancer le script qui fera une nouvelle sauvegarde full à destination de current.

Il n’y a pas de bonne sauvegarde sans bonne restauration, avec ce système on remonte aisément le temps comme un jeu d’enfants, on retrouve son fichier et un copier/coller suffit pour le récupérer, enjoy