Sauvegarde et récupération
La sauvegarde des données est l’un des aspects les plus importants de l’administration du système. Cet article présente diverses solutions de sauvegarde et de récupération dans Ubuntu 26.04 pour vous aider à choisir l’outil adapté à vos besoins.
rsync - Outil de synchronisation flexible
rsync est un outil de synchronisation de fichiers rapide et flexible qui prend en charge les transferts incrémentiels et constitue l’un des outils de sauvegarde les plus couramment utilisés sous Linux.
Utilisation de base
# Local directory sync
rsync -av /source/directory/ /backup/directory/
# Note: the trailing slash on the source path matters
# /source/dir/ -> syncs the contents of the directory
# /source/dir -> syncs the directory itself (including the directory name)Options communes
# -a archive mode (preserves permissions, timestamps, symlinks, etc.)
# -v verbose output
# -z compress during transfer
# -h human-readable output
# --progress show progress
# --delete delete files in the target that don't exist in the source
# Complete local backup command
rsync -avh --progress /home/user/ /backup/home-user/
# Backup with exclusion rules
rsync -avh --progress \
--exclude='.cache' \
--exclude='node_modules' \
--exclude='.local/share/Trash' \
/home/user/ /backup/home-user/
# Using an exclude file
rsync -avh --exclude-from='/home/user/rsync-excludes.txt' \
/home/user/ /backup/home-user/Sauvegarde à distance
# Backup to a remote server via SSH
rsync -avz -e ssh /home/user/ user@remote:/backup/home-user/
# Specify SSH port
rsync -avz -e "ssh -p 2222" /home/user/ user@remote:/backup/home-user/
# Restore from a remote server
rsync -avz user@remote:/backup/home-user/ /home/user/
# Use --delete to keep both sides in sync
rsync -avz --delete /home/user/ user@remote:/backup/home-user/Script de sauvegarde rsync automatisé
Créez un script de sauvegarde :
sudo nano /usr/local/bin/daily-backup.sh#!/bin/bash
# Configuration
SOURCE="/home/"
DEST="/backup/daily"
LOG="/var/log/backup.log"
DATE=$(date +%Y-%m-%d_%H%M%S)
# Create log entry
echo "===== Backup started: $DATE =====" >> "$LOG"
# Execute backup
rsync -avh --delete \
--exclude='.cache' \
--exclude='node_modules' \
--exclude='.local/share/Trash' \
"$SOURCE" "$DEST" >> "$LOG" 2>&1
# Record result
if [ $? -eq 0 ]; then
echo "Backup completed successfully: $(date)" >> "$LOG"
else
echo "Backup failed: $(date)" >> "$LOG"
fisudo chmod +x /usr/local/bin/daily-backup.shPlanifiez-le avec cron :
# Run backup every day at 2 AM
sudo crontab -e
# Add: 0 2 * * * /usr/local/bin/daily-backup.shTimeshift - Instantanés du système
Timeshift se concentre sur les instantanés et la récupération des fichiers système, similaires à la restauration du système Windows.
Installation et configuration
# Install Timeshift
sudo apt install timeshift
# Launch the graphical interface
sudo timeshift-gtk
# Create a snapshot via command line
sudo timeshift --create --comments "Before installing NVIDIA driver"
# List all snapshots
sudo timeshift --list
# Restore to a specific snapshot
sudo timeshift --restore --snapshot '2026-03-24_10-00-00'
# Delete a snapshot
sudo timeshift --delete --snapshot '2026-03-24_10-00-00'Configuration de la ligne de commande
# View current configuration
sudo timeshift --config
# Set snapshot type (RSYNC or BTRFS)
sudo timeshift --snapshot-device /dev/sda2Fichier de configuration du décalage horaire
Modifier /etc/timeshift/timeshift.json :
{
"backup_device_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"parent_device_uuid": "",
"do_first_run": false,
"btrfs_mode": false,
"include_btrfs_home": false,
"schedule_monthly": false,
"schedule_weekly": true,
"schedule_daily": true,
"schedule_hourly": false,
"schedule_boot": false,
"count_monthly": 2,
"count_weekly": 3,
"count_daily": 5,
"count_hourly": 0,
"count_boot": 0,
"exclude": [
"/home/**",
"/root/**"
]
}Mode instantané Btrfs
Si le système utilise le système de fichiers Btrfs, Timeshift peut exploiter les instantanés Btrfs natifs, qui sont plus rapides et utilisent moins d’espace :
# Verify filesystem type
df -T /
# If it's Btrfs, select BTRFS mode in Timeshift
sudo timeshift --btrfsDeja Dup - Outil de sauvegarde du bureau
Deja Dup (GNOME Backups) est un outil de sauvegarde facile à utiliser pour l’environnement de bureau Ubuntu, adapté aux utilisateurs personnels.
Installation et utilisation
# Install (usually pre-installed on Ubuntu Desktop)
sudo apt install deja-dupDeja Dup fournit une interface graphique, accessible via « Paramètres » ou en recherchant « Sauvegardes » dans le menu de l’application.
Principales caractéristiques :
- Prend en charge la sauvegarde sur des disques locaux, des disques externes et le stockage réseau
- Prend en charge la sauvegarde sur Google Drive et autre stockage cloud
- Cryptage automatique des sauvegardes
- Prise en charge de la sauvegarde incrémentielle
- Sauvegardes automatiques planifiées
Opérations de ligne de commande
Deja Dup utilise la duplicité comme backend :
# Manually run a backup
deja-dup --backup
# Restore files
deja-dup --restoreSauvegarde d’image disque
Création d’images disque avec dd
# Create a full disk image
sudo dd if=/dev/sda of=/backup/sda.img bs=4M status=progress
# Compressed image
sudo dd if=/dev/sda bs=4M status=progress | gzip > /backup/sda.img.gz
# Restore from an image
sudo dd if=/backup/sda.img of=/dev/sda bs=4M status=progress
# Restore from a compressed image
gunzip -c /backup/sda.img.gz | sudo dd of=/dev/sda bs=4M status=progressUtiliser Clonezilla
Clonezilla est un puissant outil de clonage et d’imagerie de disque :
# Install Clonezilla
sudo apt install clonezilla
# It is generally recommended to boot from a Clonezilla Live USB
# Download: https://clonezilla.org/downloads.phpSauvegarde du système avec tar
# Back up the entire system (excluding unnecessary directories)
sudo tar czpf /backup/system-$(date +%Y%m%d).tar.gz \
--exclude=/backup \
--exclude=/proc \
--exclude=/sys \
--exclude=/dev \
--exclude=/run \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/media \
--exclude=/lost+found \
/
# Restore the system
sudo tar xzpf /backup/system-20260324.tar.gz -C /Sauvegarde de base de données
MySQL/MariaDB
# Back up a single database
mysqldump -u root -p database_name > /backup/db-$(date +%Y%m%d).sql
# Back up all databases
mysqldump -u root -p --all-databases > /backup/all-db-$(date +%Y%m%d).sql
# Restore a database
mysql -u root -p database_name < /backup/db-20260324.sqlPostgreSQL
# Back up a single database
sudo -u postgres pg_dump dbname > /backup/pg-$(date +%Y%m%d).sql
# Back up all databases
sudo -u postgres pg_dumpall > /backup/pg-all-$(date +%Y%m%d).sql
# Restore
sudo -u postgres psql dbname < /backup/pg-20260324.sqlRecommandations en matière de stratégie de sauvegarde
La règle de sauvegarde 3-2-1
- 3 copies de vos données (l’original + 2 sauvegardes)
- 2 supports de stockage différents (par exemple, disque dur local + stockage cloud)
- 1 sauvegarde hors site (protection contre les catastrophes physiques)
Recommandations par scénario
| Scénario | Outils recommandés | Fréquence de sauvegarde |
|---|---|---|
| Utilisateur personnel de bureau | Déjà Dup + Timeshift | Quotidien / Hebdomadaire |
| Poste de travail de développement | rsync + Timeshift | Quotidiennement |
| Serveur Web | rsync + sauvegarde de la base de données | Quotidien/Horaire |
| Serveur d’entreprise critique | rsync + instantanés LVM + sauvegarde hors site | En temps réel / horaire |
Vérification des sauvegardes
Il est essentiel de vérifier régulièrement l’intégrité des sauvegardes :
# Verify a tar backup
tar tzf /backup/system-20260324.tar.gz > /dev/null
# Verify an rsync backup
rsync -avhn --delete /source/ /backup/ # dry-run to compare differences
# Perform periodic restore drills