Outils pour utilisateurs

Outils du site


restic_utilitaire_de_sauvegarde

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
restic_utilitaire_de_sauvegarde [2020/03/17 00:53] n1c0restic_utilitaire_de_sauvegarde [2023/10/10 20:41] (Version actuelle) – [Restore] Labomedia
Ligne 8: Ligne 8:
  
 On peut adapter très facilement ce tuto pour sauver une machine sur un disque externe par exemple : il suffit de changer la valeur du paramètre -r qui défini où se trouve le dépôt de sauvegarde (il peut être [[https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html|un peu n'importe où]]). On peut adapter très facilement ce tuto pour sauver une machine sur un disque externe par exemple : il suffit de changer la valeur du paramètre -r qui défini où se trouve le dépôt de sauvegarde (il peut être [[https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html|un peu n'importe où]]).
 +
 +**Important** : Restic utilise massivement les entrées/sorties du disque dur, ce qui ralentit le système pendant les longues sauvegardes. Préférer un SSD s'il y a beaucoup de choses à sauver.
  
 ===== Installation ===== ===== Installation =====
Ligne 18: Ligne 20:
  
 <code bash> <code bash>
-adduser restic+adduser restic
 </code> </code>
  
Ligne 24: Ligne 26:
  
 <code bash> <code bash>
-chown restic: /home/restic && chmod 750 /home/restic+chown restic: /home/restic && chmod 750 /home/restic
 </code> </code>
  
Ligne 30: Ligne 32:
  
 <code bash> <code bash>
-cd /home/restic +cd /home/restic 
-mkdir bin +mkdir bin 
-cd bin +cd bin 
-wget https://github.com/restic/restic/releases/download/v0.9.6/restic_0.9.6_linux_amd64.bz2 +wget https://github.com/restic/restic/releases/download/v0.9.6/restic_0.9.6_linux_amd64.bz2 
-bunzip2 restic_0.9.6_linux_amd64.bz2 +bunzip2 restic_0.9.6_linux_amd64.bz2 
-mv restic_0.9.6_linux_amd64 restic +mv restic_0.9.6_linux_amd64 restic 
-cd .. +cd .. 
-chown -R root:restic bin +chown -R root:restic bin 
-chmod 750 bin/restic+chmod 750 bin/restic
 </code> </code>
  
Ligne 46: Ligne 48:
  
 <code bash> <code bash>
-setcap cap_dac_read_search=+ep /home/restic/bin/restic+setcap cap_dac_read_search=+ep /home/restic/bin/restic
 </code> </code>
  
Ligne 52: Ligne 54:
  
 <code bash> <code bash>
-sudo -u restic /home/restic/bin/restic ... paramètres habituels+sudo -u restic /home/restic/bin/restic ... paramètres habituels
 </code> </code>
  
Ligne 62: Ligne 64:
  
 <code bash> <code bash>
-adduser resticbackup+adduser resticbackup
 </code> </code>
  
Ligne 68: Ligne 70:
  
 <code bash> <code bash>
-mkdir resticrepo && chown -R resticbackup: resticrepo+mkdir resticrepo && chown -R resticbackup: resticrepo
 </code> </code>
  
Ligne 91: Ligne 93:
 <code bash> <code bash>
 # on peut taper  # on peut taper 
-ssh resticbox+ssh resticbox
  
 # au lieu de  # au lieu de 
-ssh resticbackup@XXX.XXX.XXX.XXX -p 22+ssh resticbackup@XXX.XXX.XXX.XXX -p 22
 </code> </code>
  
Ligne 104: Ligne 106:
  
 <code bash> <code bash>
-ssh-keygen -t rsa+ssh-keygen -t rsa
 </code> </code>
  
Ligne 110: Ligne 112:
  
 <code bash> <code bash>
-less .ssh/id_rsa.pub+less .ssh/id_rsa.pub
 </code> </code>
  
Ligne 135: Ligne 137:
 On pourra donc executer la commande **rstc** seulement. On pourra donc executer la commande **rstc** seulement.
  
-__Remarque__ : la RESTIC_PASSWORD contient le mot de passe du dépôt (différent du user resticbackup du server save). Il faudra changer **motDePasse** par sa valeur une fois le dépôt initialisé !+__Remarque__ : la variable RESTIC_PASSWORD contient le mot de passe du dépôt (différent du user **resticbackup** du server de sauvegarde). Il faudra changer **motDePasse** par sa valeur une fois le dépôt initialisé ! (voir plus bas)
  
 Pour que le user root puisse utiliser ce nouvel alias, soit il faut se déconnecter / reconnecter, soit executer la commande : Pour que le user root puisse utiliser ce nouvel alias, soit il faut se déconnecter / reconnecter, soit executer la commande :
  
 <code bash> <code bash>
-source /root/.bashrc+source /root/.bashrc
 </code> </code>
 +
  
 ===== Initialiser le depôt ===== ===== Initialiser le depôt =====
Ligne 148: Ligne 151:
  
 <code bash> <code bash>
-sudo -u restic /home/restic/bin/restic -r sftp:resticbox:/home/resticbackup/resticrepo init+sudo -u restic /home/restic/bin/restic -r sftp:resticbox:/home/resticbackup/resticrepo init
 </code> </code>
  
Ligne 164: Ligne 167:
  
 <code bash> <code bash>
-rstc --verbose backup /home/jeanclaude+rstc --verbose backup /home/jeanclaude
 </code> </code>
  
Ligne 170: Ligne 173:
  
 <code bash> <code bash>
-rstc --verbose backup --tag jeanclaude /home/jeanclaude+rstc --verbose backup --tag jeanclaude /home/jeanclaude
 </code> </code>
  
Ligne 178: Ligne 181:
  
 On peut évidemment restaurer n'importe quel snapshot, mais attention, je recommande de restaurer dans un dossier temp ce que l'on veut récuperer, puis de remplacer les fichiers que l'on veut.  On peut évidemment restaurer n'importe quel snapshot, mais attention, je recommande de restaurer dans un dossier temp ce que l'on veut récuperer, puis de remplacer les fichiers que l'on veut. 
 +
 +Ce dossier temporaire doit appartenir au user restic.
  
 Pour restaurer, on a besoin d'un numéro unique de snapshot. Voir plus bas pour la commande listant les snapshots disponibles. Pour restaurer, on a besoin d'un numéro unique de snapshot. Voir plus bas pour la commande listant les snapshots disponibles.
Ligne 184: Ligne 189:
  
 <code bash> <code bash>
-rstc restore 3054af84 --target /home/jeanclaude/repertoireTemporaire+rstc restore 3054af84 --target /home/jeanclaude/repertoireTemporaire
 </code> </code>
  
Ligne 197: Ligne 202:
 </code> </code>
  
-Ne garder qu'un snapshot par jour sur 7 jours pour un **path** donné (pour 7 jours où il y a une sauvegarde, c-a-d que si la sauvegarde est le dimanche, cela gardera 1 sauvegarde pour chacun des 7 derniers dimanches) :+Ne garder qu'un snapshot par jour sur 7 jours pour un **path** donné (pour 7 jours où il y a une sauvegarde, c-a-d que si la sauvegarde est le dimanche, cela gardera 1 sauvegarde jusqu'au lundi d'avant) :
  
 <code bash> <code bash>
-rstc forget --path="/home/nico" --keep-daily 7 --prune+rstc forget --path="/home/nico" --keep-daily 7 --prune
 </code> </code>
  
Ligne 206: Ligne 211:
  
 <code bash> <code bash>
-rstc forget --tag restic1 --keep-daily 7 --prune+rstc forget --tag restic1 --keep-daily 7 --prune
 </code> </code>
  
Ligne 212: Ligne 217:
  
 <code bash> <code bash>
-rstc forget --group-by tags --keep-daily 7 --keep-weekly 5 --keep-monthly 6 --prune+rstc forget --group-by tags --keep-daily 7 --keep-weekly 5 --keep-monthly 6 --prune
 </code> </code>
  
 +Pour supprimer tous les snapshots d'un tag par exemple, il faut d'abord supprimer tous sauf le dernier, puis supprimer le dernier manuellement en executant le prune qui reconstituera les index et supprimera réellement les données :
 +
 +<code bash>
 +rstc forget --tag montag --keep-last 1
 +rstc forget bdbd3439 --prune
 +</code>
 ===== Commandes utiles ===== ===== Commandes utiles =====
 +
 +==== Mise à jour de Restic ====
 +
 +Lancer la commande de mise à jour puis remettre les bons droits :
 +
 +<code bash>
 +cd /home/restic/bin
 +./restic self-update
 +chown root:restic restic && setcap cap_dac_read_search=+ep /home/restic/bin/restic
 +</code>
  
 ==== Lister les snapshots ==== ==== Lister les snapshots ====
  
 <code bash> <code bash>
-rstc snapshots+rstc snapshots
 </code> </code>
  
Ligne 246: Ligne 267:
  
 <code bash> <code bash>
-rstc check+rstc check
 </code> </code>
  
Ligne 258: Ligne 279:
  
 <code bash> <code bash>
-rstc diff 5845b002 2ab627a6+rstc diff 5845b002 2ab627a6
 </code> </code>
  
Ligne 281: Ligne 302:
 Penser à changer la valeur de RESTIC_PASSWORD par le vrai mot de passe de votre dépôt. Penser à changer la valeur de RESTIC_PASSWORD par le vrai mot de passe de votre dépôt.
  
-Ce que fait ce script plutôt simple en réalité :+Ce que fait ce script est plutôt simple en réalité :
  
   * avec le ''for'' on parcourt tous les fichiers directs de /home   * avec le ''for'' on parcourt tous les fichiers directs de /home
Ligne 296: Ligne 317:
   * on tag ce snapshot avec le nom du dossier du home : ''${f:6}'' veut dire qu'on prend la valeur de la chaine de caractère ''${f}'' a partir du caractère 6, c-a-d qu'on zappe '/home/'   * on tag ce snapshot avec le nom du dossier du home : ''${f:6}'' veut dire qu'on prend la valeur de la chaine de caractère ''${f}'' a partir du caractère 6, c-a-d qu'on zappe '/home/'
   * on lui dit quoi sauvegarder, ''${f}'' contient le path du home en cours, ex : /home/jeanclaude   * on lui dit quoi sauvegarder, ''${f}'' contient le path du home en cours, ex : /home/jeanclaude
 +
 +{{tag>n1c0 bash linux utilitaire futuretic}}
restic_utilitaire_de_sauvegarde.1584406393.txt.gz · Dernière modification : 2020/03/17 00:53 de n1c0