May 6, 2019

790 mots 4 mins

Faire sa sauvegarde en une seule commande

Faire sa sauvegarde en une seule commande

Dans cette note celui ou celle qui utilise la ligne de commande Linux trouvera les commandes simples permettant de maintenir un répertoire B à l'image d'un répertoire A.

Pré-requis: Rsync 1 est installé sur le poste de travail. Ne pas avoir peur de la ligne de commande 2.

La sauvegarde, indépendamment de la compression, du chiffrement, ou de l’archivage (notion de rétention) des données, passe toujours par la synchronisation d’au moins deux espaces de stockage. Cette note montre comment utiliser Rsync pour maintenir un répertoire B à l'image d'un répertoire A.

Rsync est une commande disponible en standard sous Linux et MacOS. C'est un outil gratuit capable de détecter les fichiers modifiés ou nouveaux, et de mettre un répertoire B à l'image d'un répertoire A.

Voyons :

  • Comment accéder à rsync
  • Comment lister les différences entre un répertoire source et un répertoire destination
  • Comment mettre la destination à l’image de la source
  • La sauvegarde
  • Des infos complémentaires

Comment accéder à rsync

Ouvrir un ligne de commande.

Sous MacOS, lancer l’application Terminal qui se trouve dans le groupe Utilitaires. Sous Linux Ubuntu, il y a un racourcis clavier : Ctrl-Alt-T.

Entrer la commande rsync, normalement l’outil est installé en standard, et une liste d’options s’affiche, en commençant par ces lignes :

rsync  version 2.6.9  protocol version 29
Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.
<http://rsync.samba.org/>
...

Comment lister les différences

Entre un répertoire source et un répertoire destination :

rsync -avunh --del --progress /Volumes/P2/mon_dossier/ /Volumes/FE_SAV/mon_dossier/ >~/list

La commande ci-dessus compare un répertoire source /Volumes/P2/mon_dossier/ et un répertoire destination /Volumes/FE_SAV/mon_dossier/. Entre la commande rsync et les deux chemins de répertoires se trouvent les options :

  • a: parcours tous les sous-répertoires, conserve les attributs de fichiers (création, modification, droits, propriétaire, groupe, liens …)
  • v: affichage détaillé de l’avancement (fichier par fichier)
  • u: mise à jour de la destination avec les nouveaux fichiers sources
  • n: désactive toute modification (permet de voir ce qui serait effectué)
  • h: affichant les unités agregées (Ko, Mo, Go, …)
  • - - del: suppression des fichiers présents sur la destination et absents de la source
  • - - progress: affiche l’avancement

Attention : le slash / à la fin des chemins est important, sans lui un sous-répertoire ‘ref/ref’ serait créé sur la destination.

La partie >~/list, située en fin de ligne, redirige (via le caractère >) le resultat de la commande rsyncdans un fichier texte nommé list et situé dans le répertoire principal de l’utilisateur courant (~/).

Grâce à l’option -n la commande est executée ‘à blanc’, elle permet de consulter les mises à jour identifiées dans le fichier ~/list. Le fichier peut être ouvert avec n’importe quel éditeur de texte, ou bien via cette commande less ~/list.

Comment mettre la destination à l’image de la source

Voici la ligne de commande qui permet de sauvegarder un dossier A vers un dossier B.

rsync -avuh --del --progress /Volumes/P2/mon_dossier/ /Volumes/FE_SAV/mon_dossier/ >~/list

Seule différence par rapport au paragraphque précédent, on enlève l’option -n. Le répertoire /Volumes/P2/mon_dossier/se trouve sauvegardé sur /Volumes/FE_SAV/mon_dossier/.

Attention du coup cette commande effectue réellement les modifications de données

Le fichier ~/list permet de voir l’avancement. La commande tail -f ~/list permet de voir les nouvelles lignes au fur et à mesure de la synchronisation.

La sauvegarde

La commande rsync ci-dessus permet une sauvegarde simple d’un espace de stockage sur un autre.

Sur cette base il faut ensuite faire de bons choix :

  • utiliser des espaces différents en fonction de la quantité, de la fréquence de mise à jour, et de la sensibilité des données
  • s’assurer de bien être en phase avec ses engagements s’il en est
  • tester la restauration régulièrement
  • répartir géographiquement les espaces de stockage
  • définir un politique de rétention (archivage)

Des infos complémentaires

D’autres commandes unix complémentaires à rsync permettent d’automatiser / de planifier les sauvegardes, de compresser, et de chiffrer les données.

Rsync compare un chemin source et un chemin destination, quelque soit le type de stockage (cloud, usb, disque, réseau …). Dans le cas ci-dessus il peut s’agir de deux disques durs externes, nommés ‘P2’ et ‘FE_SAV’, connectés sur MacOS. Leurs chemins respectifs sont /Volumes/P2 et /Volumes/FE_SAV. Selon votre configuration les chemins seront différents, le reste sera identique.

Il peut être bien de nettoyer le répertoire source avant de sauvegarder. Certains systèmes génèrent des fichiers indésirables dans une sauvegarde, tels que .DS_Store sous MacOS. L’utilitaire dot_clean permet le nettoyage.

doc_clean /Volumes/P2/ref/

L’ancien système de fichiers FAT présente un décalage de 2 secondes entre les dates de fichiers source et destination. L’option --modify-window=2 de la commande rsync permet de remédier au problème.

Si besoin le manuel utilisateur installé en standard sur votre système peut être consulté via la commande man rsync.


  1. Le site officiel : rsync ↩︎

  2. L’article wikipedia : Interpréteur de commandes ↩︎