1
0
Bifurcation 0
miroir de https://github.com/PAPAMICA/Wiki-Tech.io.git synchronisé 2024-12-29 02:50:22 +01:00

docs: update Linux/Backup

Cette révision appartient à :
Maxime Sence 2021-05-23 17:13:13 +00:00 révisé par Mickael Asseline
Parent c797dfc75d
révision 0c9434bfb5

Voir le fichier

@ -2,7 +2,7 @@
title: Backup
description: Faire ses sauvegardes sous Linux
published: true
date: 2021-05-23T14:16:18.858Z
date: 2021-05-23T17:13:11.618Z
tags:
editor: ckeditor
dateCreated: 2021-04-30T22:14:05.342Z
@ -51,6 +51,7 @@ dateCreated: 2021-04-30T22:14:05.342Z
<h2>Utilisation Standard</h2>
<p>Pour sauvegarder son système on peut utiliser la commande&nbsp;<code>tar</code> avec les paramètres suivants :</p>
<pre><code class="language-plaintext">tar cvpzf backup-$(date +%d-%m-%Y).tar.gz --exclude=/backup-$(date +%d-%m-%Y).tar.gz --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys --exclude=/run --exclude=/media --exclude=/var/log --exclude=/usr/src/linux-headers\* --exclude=/home /</code></pre>
<p>&nbsp;</p>
<blockquote>
<p><strong>Attention :</strong> Cette commande est à lancer à la racine.</p>
</blockquote>
@ -61,6 +62,7 @@ dateCreated: 2021-04-30T22:14:05.342Z
<h2>Avec Nohup</h2>
<p>On peut aussi lancer la commander avec&nbsp;<code>nohup</code> pour éviter de perdre le processus une fois le terminal coupé (éviter l’envoi signal SIGHUP alias «&nbsp;<i>signal hang up</i>&nbsp;» qui clôture l’ensemble des processus enfants lancées par le terminal virtuel) :</p>
<pre><code class="language-plaintext">nohup tar cvpzf backup-$(date +%d-%m-%Y).tar.gz --exclude=/backup-$(date +%d-%m-%Y).tar.gz --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/dev --exclude=/sys --exclude=/run --exclude=/media --exclude=/var/log --exclude=/usr/src/linux-headers\* --exclude=/home --exclude=nohup.out / &amp;</code></pre>
<p>&nbsp;</p>
<blockquote>
<p>Remarquez la présence <code>&amp;</code> à la fin de la commande. Cela mets le processus en arrière plan (Que vous pouvez retrouver avec la commande <code>jobs</code>).&nbsp;</p>
</blockquote>
@ -74,3 +76,138 @@ dateCreated: 2021-04-30T22:14:05.342Z
<h1>Sauvegarder un serveur avec Active Backup de Synology</h1>
<h2>Présentation</h2>
<h2>Configuration de la sauvegarde</h2>
<p>&nbsp;</p>
<h1>Sauvegarder avec BorgBackup</h1>
<h2>
Présentation&nbsp;</h2>
<p>
</p>
<p>Borg offre plusieurs avantages :&nbsp;</p>
<ul>
<li>Déduplication
</li>
<li>Incrémental</li>
<li>Différentiel</li>
<li>Compression</li>
<li>Chiffrement</li>
</ul>
<p>Documentation : <a href="https://borgbackup.readthedocs.io/en/stable/ ">https://borgbackup.readthedocs.io/en/stable/&nbsp;</a></p>
<h2>Configuration</h2>
<h3><br>Lexique :&nbsp;</h3>
<ul>
<li>Dépôt : espace de stockage contenant les archives</li>
<li>Archive : un ou plusieurs dossiers/fichiers sauvegardés
</li>
<li>Chunk : Les fichiers sont coupés en bloc de taille fixe avec un hash unique</li>
<li>srv-backup : Serveur de stockage hebergant les dépôts&nbsp;</li>
<li>srv-app : Serveur à Sauvegarder</li>
</ul>
<p>&nbsp;</p>
<h3>Installation du paquet</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-backup:~# apt install borgbackup</code></pre>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~# apt install borgbackup</code></pre>
<p>&nbsp;</p>
<h3>Configuration de srv-backup</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-backup:~# adduser borg
borg@srv-backup:~$ mkdir ~/sauvegardes</code></pre>
<p>&nbsp;</p>
<h3>Setup SSH</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~$ ssh-keygen
root@srv-app:~$ ssh-copy-id borg@srv-backup</code></pre>
<p>&nbsp;</p>
<h3>Initialisation du dépôt</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~# borg init -e keyfile borg@srv-backup:sauvegardes/srv-app</code></pre>
<p>&nbsp;</p>
<h3>Première sauvegarde</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~# borg create borg@srv-backup:sauvegardes/srv-app::test /home</code></pre>
<p>&nbsp;</p>
<p>Vous pouvez ajouter des options, veuillez-vous référer à la documentation. Voici un exemple pour ajouter des informations pendant le transfert, choisir la compression lz4 et nommer l'archive avec la date du jour :</p>
<p>&nbsp;</p>
<pre><code class="language-plaintext"># https://borgbackup.readthedocs.io/en/stable/quickstart.html#backup-compression
# lz4 (super fast, low compression)
# zstd (wide range from high speed and low compression to high compression and lower speed)
# zlib (medium speed and compression)
# lzma (low speed, high compression)
root@srv-app:~# borg create --progress --stats --compression lz4 borg@srv-backup:sauvegardes/srv-app::{now:%Y-%m-%d} /home</code></pre>
<p>&nbsp;</p>
<h3>Information sur le dépôt et les archives</h3>
<p>Information sur la taille du dépôt :</p>
<pre><code class="language-plaintext">root@srv-app:~# borg info borg@srv-backup:sauvegardes/srv-app</code></pre>
<p>Liste des archives du dépôt :</p>
<pre><code class="language-plaintext">root@srv-app:~# borg list borg@srv-backup:sauvegardes/srv-app</code></pre>
<p>Information sur la taille de l'archive :</p>
<pre><code class="language-plaintext">root@srv-app:~# borg info borg@srv-backup:sauvegardes/srv-app::test</code></pre>
<p>Liste des fichiers de l'archive :</p>
<pre><code class="language-plaintext">root@srv-app:~# borg list borg@srv-backup:sauvegardes/srv-app::test</code></pre>
<p>On peut voir le gains de place avec la commande borg info grâce à la compression et la déduplication :</p>
<pre><code class="language-plaintext"> Original size Compressed size Deduplicated size
All archives: 1.01 GB 444.37 MB 432.50 MB
Unique chunks Total chunks
Chunk index: 43183 44850</code></pre>
<p>&nbsp;</p>
<h3>Emplacement de la Config et du Cache</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">~/.config/borg
~/.cache/borg</code></pre>
<p>Le dossier cache peut prendre de la place, vous pouvez le déplacer puis créer un lien symbolique pour éviter de saturer le filesystem par défaut.</p>
<p>&nbsp;</p>
<h3>Monter une archive</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~# borg mount borg@srv-backup:sauvegardes/srv-app::test /mnt</code></pre>
<p>&nbsp;</p>
<h3>Supprimer une archive et un dépôt&nbsp;</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~# borg delete borg@srv-backup:sauvegardes/srv-app::test</code></pre>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~# borg delete borg@srv-backup:sauvegardes/srv-app</code></pre>
<p>&nbsp;</p>
<h3>Vérifier et Réparer</h3>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~# borg check -v --progress borg@srv-backup:sauvegardes/srv-app::test</code></pre>
<p>&nbsp;</p>
<pre><code class="language-plaintext">root@srv-app:~# borg check --repair borg@srv-backup:sauvegardes/srv-app::test</code></pre>
<p>&nbsp;</p>
<h3>Automatiser la sauvegarde</h3>
<p>Voici un script d'exemple qui va sauvegarder /etc et /home puis faire une purge des archives :</p>
<p>&nbsp;</p>
<pre><code class="language-plaintext">#!/bin/bash
# Variables
set -e
export BORG_PASSPHRASE="`cat /path/passphrase`"
BORG_CLIENT=srv-app
BORG_REPO=borg@srv-backup:sauvegardes/${BORG_CLIENT}
BORG_LOG=/var/log/${BORG_CLIENT}.log
BORG_TARGET=(
/etc
/home
)
# Creation de l'archive
borg create --exclude-caches --exclude-from /path/exclude_list --compression zstd ${BORG_REPO}::{now:%Y-%m-%d} "${BORG_TARGET[@]}" &gt;&gt; ${BORG_LOG} 2&gt;&amp;1
# Nettoyage des anciens backups
# - une archive par jour les 7 derniers jours,
# - une archive par semaine pour les 4 dernières semaines,
# - une archive par mois pour les 12 derniers mois.
borg prune ${BORG_REPO} --keep-daily=7 --keep-weekly=4 --keep-monthly=12 &gt;&gt; ${BORG_LOG} 2&gt;&amp;1</code></pre>
<p>Il ne reste qu'a ajouter ce script dans Cron pour effectuer la sauvegarde et la purge tous les jours.</p>
<p>&nbsp;</p>
<h3>Remerciements et sources</h3>
<ul>
<li><a href="https://sebsauvage.net/wiki/doku.php?id=borgbackup">https://sebsauvage.net/wiki/doku.php?id=borgbackup</a></li>
<li><a href="https://blog.karolak.fr/2017/05/05/monter-un-serveur-de-sauvegardes-avec-borgbackup/">https://blog.karolak.fr/2017/05/05/monter-un-serveur-de-sauvegardes-avec-borgbackup/</a></li>
<li><a href="https://blog.garamotte.net/posts/2018/01/11/fr-backup-and-restore-with-borg.html">https://blog.garamotte.net/posts/2018/01/11/fr-backup-and-restore-with-borg.html</a></li>
<li><a href="https://connect.ed-diamond.com/Linux-Pratique/LP-098/Ne-procrastinez-plus-vos-sauvegardes-grace-a-Borg3">https://connect.ed-diamond.com/Linux-Pratique/LP-098/Ne-procrastinez-plus-vos-sauvegardes-grace-a-Borg3</a><br>
</li>
</ul>