Sauvegarde
Borgbackup
Pour effectuer des sauvegardes incrémentielles, j'utilise BorgBackup qui a l'avantage de pouvoir garder seulement X sauvegardes, de restaurer uniquement un fichier ou dossier en particulier et de monter la sauvegarde dans le système de fichier.
En prérequis, il faut bien sûr avoir installé le paquet borgbackup
.
Voici mon script :
#!/bin/bash
# Définir le répertoire de sauvegarde
backup_dir="/mnt/disque1/borgbackup"
# Définir le nom de l'archive
archive_name=borg_backup
# Définir le nombre de sauvegardes à conserver
num_backups_to_keep=5
# Obtenir la date et l'heure actuelles
current_date_time=$(date +%d-%m-%Y_%H-%M-%S)
# Supprimer les sauvegardes excédentaires
borg prune --keep-last $num_backups_to_keep "${backup_dir}"
# Créer la sauvegarde incrémentielle en excluant les dossiers indiqués
borg create -v --stats --compression none \
--exclude /swapfile \
--exclude '/dev/*' \
--exclude '/proc/*' \
--exclude '/sys/*' \
--exclude '/tmp/*' \
--exclude '/run/*' \
--exclude '/mnt/*' \
--exclude '/media/*' \
--exclude '/lost+found' \
"${backup_dir}::${archive_name}_${current_date_time}" /
# https://doc.ubuntu-fr.org/borgbackup
# restauration
# borg extract /chemin/vers/repertoire/de/sauvegarde::borg_backup_01-01-2021_12-00-00 --path /chemin/du/fichier/ou/dossier/à/restaurer /chemin/de/destination
# Montage de la sauvegarde
# borg mount /backup/borg::20230119 /tmp/backup
# Démontage
# borg umount /tmp/backup
Ne pas oublier de personnaliser selon les besoins et la configuration du système de fichier.
Notez qu'à la fin du script, je me suis laissé des notes.
DD
dd
va me permettre de faire une image complète que je vais envoyer sur un autre serveur en cas de panne du disque dur système.
Voici le script simplifié :
#!/bin/bash
# Définir la source (sda) et la destination
src_disk=/dev/sda
dst_dir=/mnt/disque_2
dst_image=${dst_dir}/sda_image_$(date +%Y%m%d).img
error_log=${dst_dir}/ERROR_image_$(date +%Y%m%d)
# Commencer la copie bloc par bloc
echo "Démarrage de la création de l'image disque..."
dd if=$src_disk of=$dst_image bs=4096 conv=noerror,sync
# Vérifier si la copie s'est terminée avec succès
if [ $? -eq 0 ]; then
echo "Image disque créée avec succès dans $dst_image."
find $dst_dir -type f -name "sda_image_*" -not -name "$(basename $dst_image)" -delete
else
echo "Erreur lors de la création de l'image disque."
touch $error_log
fi
Bien sûr, il ne faut pas oublier de l'adapter et de créer une tâche CRON.