Outils pour utilisateurs

Outils du site


software:applications:restic:000_restic

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
software:applications:restic:000_restic [2026/07/20 21:04] yoannsoftware:applications:restic:000_restic [2026/07/22 17:10] (Version actuelle) yoann
Ligne 3: Ligne 3:
  
 ====== Sauvegarder avec restic ====== ====== Sauvegarder avec restic ======
 +
 +**restic** un programme en ligne de commande permettant de sauvegarder ses données.
 +
  
 Principales caractéristiques de **restic** : Principales caractéristiques de **restic** :
  
-  * **Agnostic** : il existe sur les principaux systèmes d'exploitation : Linux, BSD, Mac et Windows ;+  * **Agnostique** : il existe sur les principaux systèmes d'exploitation : Linux, BSD, Mac et Windows ;
   * **Flexible** : il s'interface avec de nombreux systèmes de stockage auto-hébergés ou via les services en ligne ;   * **Flexible** : il s'interface avec de nombreux systèmes de stockage auto-hébergés ou via les services en ligne ;
   * **Simple** : exécutable autonome sans dépendances de services ou de serveurs ;   * **Simple** : exécutable autonome sans dépendances de services ou de serveurs ;
Ligne 25: Ligne 28:
 </code> </code>
  
-restic conserve les sauvegardes au sein d'un dépôt. On commence donc par en créer un :+==== Initialiser un dépôt ==== 
 + 
 +restic conserve les sauvegardes au sein d'un dépôt. On commence donc par en créer un via la commande ''init''.
  
 <code bash> <code bash>
Ligne 33: Ligne 38:
 A la création du dépôt un mot de passe est demandé. Ce mot de passe est important, il sera nécessaire pour toute interaction avec le dépôt. A la création du dépôt un mot de passe est demandé. Ce mot de passe est important, il sera nécessaire pour toute interaction avec le dépôt.
  
-Pour ne pas avoir à systématiquement préciser le dépôt à utiliser via l'option ''%%--repo%%'', on pourra définir une variable d'environnement :+Pour ne pas avoir à systématiquement préciser le dépôt à utiliser via l'argument ''%%--repo%%'', on pourra définir une variable d'environnement :
  
 <code bash> <code bash>
 export RESTIC_REPOSITORY=/home/yoann/backups/restic-repo/ export RESTIC_REPOSITORY=/home/yoann/backups/restic-repo/
 +
 +# Pour éviter de ressaisir le mot de passe
 +export RESTIC_PASSWORD=MyVeryGooooodPassWord
 </code> </code>
  
-On peut faire créer sa première sauvegarde :+ 
 +==== Sauvegarder ==== 
 + 
 +On peut à présent créer sa première sauvegarde :
  
 <code bash> <code bash>
Ligne 46: Ligne 57:
  
  
-restic désigne snapshots vos sauvegardes. Pour lister les snapshots présents dans le dépot :+restic désigne par "snapshotsvos sauvegardes. Pour lister les snapshots présents dans le dépôt :
  
 <code bash> <code bash>
Ligne 52: Ligne 63:
 </code> </code>
  
 +Certaines commandes peuvent être exécutés "à blanc" via l'option ''%%--dry-run%%''. C'est le cas pour la sauvegarde.
  
 On ajoute un nouveau fichier au dossier ''~/Documents'', puis on simule une sauvegarde (avec l' option ''%%--dry-run%%'') On ajoute un nouveau fichier au dossier ''~/Documents'', puis on simule une sauvegarde (avec l' option ''%%--dry-run%%'')
Ligne 58: Ligne 70:
 echo "Hello World!" > ~/Documents/aNewFile.txt echo "Hello World!" > ~/Documents/aNewFile.txt
  
 +# test la commande de sauvegarde
 restic backup ~/Documents/ --dry-run restic backup ~/Documents/ --dry-run
 </code> </code>
  
-restic détecte bien le nouveau fichier et indique que seulement celui-ci sera copié. On peut faire une nouvelle sauvegarde :+restic détecte bien le nouveau fichier et indique que seulement celui-ci sera copié. On peut effectivement exécuter la sauvegarde :
  
 <code bash> <code bash>
 restic backup ~/Documents restic backup ~/Documents
 </code> </code>
 +
 +==== Lister/rechercher dans le dépot ====
  
 Pour lister l'ensemble des fichiers présents dans le snapshot le plus récent : Pour lister l'ensemble des fichiers présents dans le snapshot le plus récent :
Ligne 73: Ligne 88:
 </code> </code>
  
-Pour tester une restauration, on supprime un fichier présent dans le dossier précédemment sauvegardé :+Pour ne lister que le contenu d'un sous-dossier :
  
 <code bash> <code bash>
-rm ~/Documents/wishlist.txt +restic ls latest /home/yoann/Documents/factures
 </code> </code>
  
-On recherche le fichier dans les sauvegardes :+ 
 +Pour rechercher un fichier dans les sauvegardes :
  
 <code bash> <code bash>
 restic find "wishlist*" restic find "wishlist*"
 +
 +# rechercher uniquement dans le dernier snapshot
 +resstic find "wishlist*" latest
 +
 +# rechercher uniquement dans les snapshot désignés
 +restic find "wishlist*" 5e1ea3aa 4d22f100
 </code> </code>
 +
 +La recherche est sensible à la casse de caractères mais on peut utiliser l'option ''%%--ignore-case%%'' pour changer ce comportement par défaut.
 +
 +<code bash>
 +restic find --ignore-case "contrat*" latest
 +</code> 
 +
 +==== Restaurer ====
 +
 +
 +Par défaut la restauration reconstruit le chemin complet dans le répertoire de destination (cible) :
 +
 +<code bash>
 +# le fichier et les dossiers parents sont recréés sur la destination (target)
 +restic restore latest --include /home/yoann/Documents/wishlist.txt --target /tmp
 +</code>
 +
 +Dans le cas présenté ci-dessus le dossier ''/tmp'' contiendra après exécution de la restauration ''/tmp/home/yoann/Documents/wishlist.txt''.
 +
 +Si l'on souhaite restaurer le fichier à son emplacement initial, on peut saisir :
 +
 +<code bash>
 +restic restore latest --include /home/yoann/Documents/wishlist.txt --target /
 +</code>
 +
 +Pour ne pas reconstruire l'ensemble de l’arborescence et restaurer seulement le fichier souhaité dans un répertoire cible différent, on peut utiliser la syntaxe :
 +
 +<code bash>
 +restic restore latest:/home/yoann/Documents/ --include "wishlist.txt" --target /tmp
 +</code>
 +
 +
 +De la même manière, pour restaurer le dossier ''/home/yoann/Documents/factures'' et son contenu dans le répertoire cible ''/tmp'' sans recréer toute l'arborescence :
 +
 +<code bash>
 +restic restore latest:/home/yoann/Documents --include factures --target /tmp/
 +</code>
 +
 +
 +Pour restaurer le dernier snapshot :
 +
 +<code bash>
 +restic restore latest --target /
 +</code>
 +
 +
 + 
 +==== Supprimer un snapshot ====
 +
 +La suppression s'effectue en deux temps via les commandes ''forget'' puis ''prune''.
 +  * La commande forget supprime les références vers les données mais pas les données-elles même qui restent dans le dépôt. Cette opération est rapide.
 +  * L'opération prune conduit à la suppression des données non référencées présentes dans le dépôt et la la libération de l'espace disque. Cette opération est plus longue et pendant qu'elle s'effectue, le dépôt n'est pas accessible.
 +
 +''forget'' et ''prune'' ont également une option d'exécution à blanc via l'argument ''%%--dry-run%%''
 +
 +<code bash>
 +restic forget latest --dry-run
 +
 +restic forget latest
 +
 +restic prune --dry-run
 +</code>
 +
 +Après la commande ''prune'' on peut vouloir vérifier l'intégrité du dépôt.
 +
 + 
 +==== Maintenance du dépôt ====
  
  
 +Il est recommandé de vérifier périodiquement l'état du dépôt :
  
-Il est recommandé de vérifier périodiquement les métadonnées du dépôt : 
 <code bash> <code bash>
 restic check restic check
software/applications/restic/000_restic.1784581477.txt.gz · Dernière modification : 2026/07/20 21:04 de yoann