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 à :
Parent
c797dfc75d
révision
0c9434bfb5
1 fichiers modifiés avec 138 ajouts et 1 suppressions
|
@ -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 <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> </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 <code>nohup</code> pour éviter de perdre le processus une fois le terminal coupé (éviter l’envoi signal SIGHUP alias « <i>signal hang up</i> » 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 / &</code></pre>
|
||||
<p> </p>
|
||||
<blockquote>
|
||||
<p>Remarquez la présence <code>&</code> à la fin de la commande. Cela mets le processus en arrière plan (Que vous pouvez retrouver avec la commande <code>jobs</code>). </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> </p>
|
||||
<h1>Sauvegarder avec BorgBackup</h1>
|
||||
<h2>
|
||||
Présentation </h2>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<p>Borg offre plusieurs avantages : </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/ </a></p>
|
||||
<h2>Configuration</h2>
|
||||
<h3><br>Lexique : </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 </li>
|
||||
<li>srv-app : Serveur à Sauvegarder</li>
|
||||
</ul>
|
||||
<p> </p>
|
||||
<h3>Installation du paquet</h3>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-backup:~# apt install borgbackup</code></pre>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~# apt install borgbackup</code></pre>
|
||||
<p> </p>
|
||||
<h3>Configuration de srv-backup</h3>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-backup:~# adduser borg
|
||||
borg@srv-backup:~$ mkdir ~/sauvegardes</code></pre>
|
||||
<p> </p>
|
||||
<h3>Setup SSH</h3>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~$ ssh-keygen
|
||||
root@srv-app:~$ ssh-copy-id borg@srv-backup</code></pre>
|
||||
<p> </p>
|
||||
<h3>Initialisation du dépôt</h3>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~# borg init -e keyfile borg@srv-backup:sauvegardes/srv-app</code></pre>
|
||||
<p> </p>
|
||||
<h3>Première sauvegarde</h3>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~# borg create borg@srv-backup:sauvegardes/srv-app::test /home</code></pre>
|
||||
<p> </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> </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> </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> </p>
|
||||
<h3>Emplacement de la Config et du Cache</h3>
|
||||
<p> </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> </p>
|
||||
<h3>Monter une archive</h3>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~# borg mount borg@srv-backup:sauvegardes/srv-app::test /mnt</code></pre>
|
||||
<p> </p>
|
||||
<h3>Supprimer une archive et un dépôt </h3>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~# borg delete borg@srv-backup:sauvegardes/srv-app::test</code></pre>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~# borg delete borg@srv-backup:sauvegardes/srv-app</code></pre>
|
||||
<p> </p>
|
||||
<h3>Vérifier et Réparer</h3>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~# borg check -v --progress borg@srv-backup:sauvegardes/srv-app::test</code></pre>
|
||||
<p> </p>
|
||||
<pre><code class="language-plaintext">root@srv-app:~# borg check --repair borg@srv-backup:sauvegardes/srv-app::test</code></pre>
|
||||
<p> </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> </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[@]}" >> ${BORG_LOG} 2>&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 >> ${BORG_LOG} 2>&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> </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>
|
||||
|
|
Chargement…
Référencer dans un nouveau ticket