Backup
Vaut mieux mourir que guérir.
Ah non, prévenir pardon !
[Backup] Borg
Introduction
Borgbackup permet de faire des sauvegardes différentielles ce qui permet un gain d'espace et de temps de sauvegarde.
Chaque version spécifique d'une sauvegarde peut être restaurée.
Il supporte le chiffrement des sauvegardes, leur compression ainsi que l'utilisation d'un dépôt distant (notamment via SSH).
Installation
Debian / Ubuntu
apt install -y borgbackup
Initialisation d'un dépôt
Dépôt classique
borg init -e none REPOS_DIR
Dépôt chiffré
borg init --encryption=REPOS_KEY REPOS_DIR
Faire une sauvegarde
Sauvegarde classique
borg create REPOS::BACKUP_NAME DIR_TO_SAVE
Sauvegarde compressée
borg create -C zstd,10 REPOS::BACKUP_NAME DIR_TO_SAVE
Lister les sauvegardes d'un dépôt
borg list REPOS
Afficher le contenu d'une sauvegarde
borg list REPOS::BACKUP_NAME
Restaurer une sauvegarde
borg extract REPOS::BACKUP_NAME
Supprimer une sauvegarde
borg delete REPOS::BACKUP_NAME
Supprimer un dépot
borg delete REPOS
Utiliser un dépôt distant
ssh://USER@IP:22/
Afficher la progression
--progress
[Backup] Rsync
Introduction
Rsync est un logiciel de sauvegarde incrémentale ce qui apporte un gain de performance et d'espace disque.
Cependant, contrairement à la sauvegarde différentielle, seulement la dernière version de la sauvegarde est restaurable.
Copier un répertoire
rsync -a <SOURCE/> <DESTINATION/>
Options courantes
-a : Synchronise récursivement tout le répertoire (inclus sous-répertoires) tout en préservant les permissions, les dates, les propriétaires et les liens symboliques.
-v : Mode verbeux.
-z : Compression des données pendant le transfert.
--delete : Supprime les fichiers dans la destination qui n'existent pas dans la source.
--exclude : Exclut certains fichiers ou répertoires de la synchronisation.
--progress : Affiche une barre de progression du transfert.
--dry-run
: Effectue une simulation sans effectuer réellement la copie.
-h : Affiche les tailles de fichiers dans un format lisible par l'homme (KB, MB, GB, etc.).
Exemples courants
Copier localement un répertoire vers un autre
rsync -av <SOURCE/> <DESTINATION/>
Copier vers une machine distante via SSH :
rsync -avz <SOURCE/> <USER>@<REMOTE_HOST>:</DESTINATION_PATH>
Supprimer les fichiers dans la destination qui n'existent plus dans la source :
rsync -av --delete <SOURCE/> <DESTINATION/>
Exclure certains fichiers ou répertoires de la synchronisation :
rsync -av --exclude='*.txt' <SOURCE/> <DESTINATION/>