ST02 - Les sauvegardes
Objectif
Connaître les types de sauvegarde (complète, différentielle, incrémentielle, synthétique, miroir), la règle 3-2-1, les supports, et savoir rédiger une politique de sauvegarde. « Sauvegarder, c’est douter ! »
1. Pourquoi sauvegarder ?
| Menace | Exemple |
|---|---|
| Panne matérielle | Disque dur mort (durée de vie 3-5 ans) |
| Erreur humaine | Fichier supprimé, base écrasée |
| Rançongiciel / malware | Données chiffrées par un attaquant |
| Sinistre | Incendie, dégât des eaux, vol |
| Obligations légales | Conservation des factures (10 ans), RGPD (intégrité et disponibilité) |
2. La règle 3-2-1 (un minimum)
flowchart LR P["📁 Données de production<br/>(copie 1)"] --> L["💽 Sauvegarde locale<br/>NAS / disque (copie 2)<br/>support n°1"] P --> H["☁️ Sauvegarde HORS SITE<br/>cloud / autre bâtiment (copie 3)<br/>support n°2"]
- 3 copies des données (l’original + 2 sauvegardes),
- sur 2 supports différents,
- dont 1 hors site.
Variante moderne 3-2-1-1-0 : + 1 copie hors ligne ou immuable (déconnectée, inaltérable par un rançongiciel) et 0 erreur aux tests de restauration.
3. Les types de sauvegarde
| Type | On copie… | Restauration nécessite | ✅ | ❌ |
|---|---|---|---|---|
| Complète | Tout | 1 seul jeu | Restauration simple | Lente, volumineuse |
| Différentielle | Ce qui a changé depuis la dernière COMPLÈTE | La complète + la dernière différentielle | Restauration en 2 étapes | Grossit chaque jour |
| Incrémentielle | Ce qui a changé depuis la dernière sauvegarde (quelle qu’elle soit) | La complète + toutes les incrémentielles | La plus rapide et la plus légère | Restauration longue, une incrémentielle corrompue casse la chaîne |
| Synthétique | Le serveur de sauvegarde fusionne complète + incrémentielles en une nouvelle complète | 1 jeu | Ne charge pas la production | Logiciel plus complexe |
| Miroir | Copie exacte en (quasi) temps réel | La copie | Disponibilité immédiate | ⚠️ Recopie aussi les suppressions et le chiffrement d’un rançongiciel |
Visualiser sur une semaine (complète le dimanche)
gantt dateFormat YYYY-MM-DD axisFormat %a section Différentielle Complète :done, 2026-10-04, 1d Lundi (L) :2026-10-05, 1d Mardi (L+M) :2026-10-06, 1d Mercredi (L+M+Me) :2026-10-07, 1d section Incrémentielle Complète :done, 2026-10-04, 1d Lundi (L) :2026-10-05, 1d Mardi (M) :2026-10-06, 1d Mercredi (Me) :2026-10-07, 1d
Restaurer l’état de mercredi soir : différentielle → complète + mercredi ; incrémentielle → complète + lundi + mardi + mercredi.
4. Les supports
| Support | Capacité typique | Durée de vie indicative | Usage |
|---|---|---|---|
| Bande LTO | 18 To (LTO-9) natif | > 30 ans | Archivage, sauvegarde hors ligne en entreprise |
| Disque dur (HDD) | 1 à 24 To | 3 à 5 ans | Sauvegarde sur site, NAS |
| SSD / clé USB / carte SD | 32 Go à 8 To | 5 à 10 ans (perte de charge si non alimenté) | Transfert, petites sauvegardes |
| CD / DVD / Blu-ray | 0,7 / 4,7-8,5 / 25-100 Go | 10 à 30 ans (si bonne qualité) | Archives ponctuelles |
| NAS | Selon disques | Selon disques | Sauvegarde centralisée d’un réseau |
| Cloud (S3, Backblaze, Azure…) | Illimitée (payante) | Selon le fournisseur | Hors site |
| Papier | - | 20 à 500 ans | Documents légaux critiques |
5. Politique de sauvegarde : les questions à se poser
| Question | Notion |
|---|---|
| Quoi sauvegarder ? | Données, bases, configurations, machines virtuelles entières |
| Combien de données puis-je perdre au maximum ? | RPO (Recovery Point Objective) → fixe la fréquence |
| En combien de temps dois-je redémarrer ? | RTO (Recovery Time Objective) → fixe la méthode |
| Combien de temps garder ? | Rétention (ex. 7 quotidiennes, 4 hebdomadaires, 12 mensuelles) |
| Où ? | Sur site + hors site |
| Chiffrer ? | Oui pour le hors site / le cloud (et garder la clé ailleurs !) |
| Automatiser ? | Toujours (cron, planificateur, logiciel) + rapports |
| Tester ? | Restaurations régulières documentées - une sauvegarde jamais testée n’existe pas |
Exemple de politique pour une PME :
| Données | Fréquence | Type | Rétention | Destination |
|---|---|---|---|---|
| Serveur de fichiers | Quotidienne 22 h | Incrémentielle + complète le dimanche | 30 jours | NAS + cloud chiffré |
| Base SQL | Toutes les heures (journaux) + complète la nuit | Complète + journaux | 14 jours | NAS |
| VM | Hebdomadaire | Complète (snapshot) | 4 semaines | Proxmox Backup Server |
| Configs réseau | À chaque modification | Export | 1 an | Dépôt Git privé |
6. Outils pratiques
Linux : rsync (script fourni)
scripts/sauvegarde/sauvegarde_rsync.sh crée des instantanés datés : chaque dossier semble complet, mais les fichiers inchangés sont des liens physiques vers la sauvegarde précédente (--link-dest) → incrémentiel en place, restauration simple. Rotation automatique des plus anciens.
./sauvegarde_rsync.sh "$HOME/obsidian/truc non trier" /media/disque_usb/vault 7#!/usr/bin/env bash
set -euo pipefail
source_a_sauver="${1:?Usage : $0 <source> <destination> [nb_a_garder]}"
destination="${2:?Destination manquante}"
nb_a_garder="${3:-7}"
mkdir -p "$destination"
horodatage="$(date +%Y-%m-%d_%Hh%M)"
nouvel_instantane="$destination/$horodatage"
dernier_instantane="$(find "$destination" -mindepth 1 -maxdepth 1 -type d -name '20*' | sort | tail -n 1)"
options_rsync=(-a --delete --human-readable --info=stats1)
-n "$dernier_instantane" && options_rsync+=(--link-dest="$dernier_instantane")
rsync "${options_rsync[@]}" "${source_a_sauver%/}/" "$nouvel_instantane/"
mapfile -t instantanes < <(find "$destination" -mindepth 1 -maxdepth 1 -type d -name '20*' | sort)
nb_a_supprimer=$(( ${#instantanes[@]} - nb_a_garder ))
if (( nb_a_supprimer > 0 )); then
for ancien in "${instantanes[@]:0:nb_a_supprimer}"; do rm -rf -- "$ancien"; done
fi
echo "Sauvegarde terminée : $nouvel_instantane"Planifier chaque soir à 20 h : crontab -e → 0 20 * * * /chemin/sauvegarde_rsync.sh "/source" "/destination" 7 >> ~/sauvegarde.log 2>&1.
Autres outils
| Outil | Intérêt |
|---|---|
| BorgBackup / Restic | Déduplication + chiffrement, idéal vers un serveur ou le cloud |
| Timeshift | Instantanés du système Linux (Pop!_OS, Arch) avant une mise à jour risquée |
mysqldump / mariadb-dump | Sauvegarde d’une base MariaDB : mariadb-dump -u root -p wordpress > wp.sql |
BACKUP DATABASE (T-SQL) | Sauvegarde SQL Server → fichier .bak (comme ton ProduitsUtilitaires-Full….bak) |
| Veeam, Proxmox Backup Server | Sauvegarde de VM en entreprise |
| pfSense Backup & Restore | Export XML de la configuration |
7. Tester une restauration (procédure type)
- Choisir un fichier/une base au hasard dans la sauvegarde de la veille.
- Restaurer dans un emplacement de test (jamais par-dessus la production).
- Vérifier l’intégrité (ouvrir le fichier,
SELECT COUNT(*), empreintesha256sum). - Noter la date, la durée (→ comparer au RTO) et le résultat dans le registre des tests.