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 ?

MenaceExemple
Panne matérielleDisque dur mort (durée de vie 3-5 ans)
Erreur humaineFichier supprimé, base écrasée
Rançongiciel / malwareDonnées chiffrées par un attaquant
SinistreIncendie, dégât des eaux, vol
Obligations légalesConservation 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

TypeOn copie…Restauration nécessite✅❌
ComplèteTout1 seul jeuRestauration simpleLente, volumineuse
DifférentielleCe qui a changé depuis la dernière COMPLÈTELa complète + la dernière différentielleRestauration en 2 étapesGrossit chaque jour
IncrémentielleCe qui a changé depuis la dernière sauvegarde (quelle qu’elle soit)La complète + toutes les incrémentiellesLa plus rapide et la plus légèreRestauration longue, une incrémentielle corrompue casse la chaîne
SynthétiqueLe serveur de sauvegarde fusionne complète + incrémentielles en une nouvelle complète1 jeuNe charge pas la productionLogiciel plus complexe
MiroirCopie exacte en (quasi) temps réelLa copieDisponibilité 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

SupportCapacité typiqueDurée de vie indicativeUsage
Bande LTO18 To (LTO-9) natif> 30 ansArchivage, sauvegarde hors ligne en entreprise
Disque dur (HDD)1 à 24 To3 à 5 ansSauvegarde sur site, NAS
SSD / clé USB / carte SD32 Go à 8 To5 à 10 ans (perte de charge si non alimenté)Transfert, petites sauvegardes
CD / DVD / Blu-ray0,7 / 4,7-8,5 / 25-100 Go10 à 30 ans (si bonne qualité)Archives ponctuelles
NASSelon disquesSelon disquesSauvegarde centralisée d’un réseau
Cloud (S3, Backblaze, Azure…)Illimitée (payante)Selon le fournisseurHors site
Papier-20 à 500 ansDocuments légaux critiques

5. Politique de sauvegarde : les questions à se poser

QuestionNotion
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éesFréquenceTypeRétentionDestination
Serveur de fichiersQuotidienne 22 hIncrémentielle + complète le dimanche30 joursNAS + cloud chiffré
Base SQLToutes les heures (journaux) + complète la nuitComplète + journaux14 joursNAS
VMHebdomadaireComplète (snapshot)4 semainesProxmox Backup Server
Configs réseauÀ chaque modificationExport1 anDé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

OutilIntérêt
BorgBackup / ResticDéduplication + chiffrement, idéal vers un serveur ou le cloud
TimeshiftInstantanés du système Linux (Pop!_OS, Arch) avant une mise à jour risquée
mysqldump / mariadb-dumpSauvegarde 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 ServerSauvegarde de VM en entreprise
pfSense Backup & RestoreExport XML de la configuration

7. Tester une restauration (procédure type)

  1. Choisir un fichier/une base au hasard dans la sauvegarde de la veille.
  2. Restaurer dans un emplacement de test (jamais par-dessus la production).
  3. Vérifier l’intégrité (ouvrir le fichier, SELECT COUNT(*), empreinte sha256sum).
  4. Noter la date, la durée (→ comparer au RTO) et le résultat dans le registre des tests.

Voir aussi