07.06.2023

Comment configurer des sauvegardes périodiques incrémentielles à l'aide de Rsync sur Ubuntu 20.04

Plus tôt nous avons regardé installation de Rsync sur Ubuntu 20.04 et création d'une sauvegarde unique. Pour terminer la configuration à partir du guide actuel, suivez les étapes du premier article.

Pour de nombreuses tâches, il suffit d'ajouter l'exécution d'une telle sauvegarde à cron, mais ces outils permettent de faire et de stocker plusieurs copies de fichiers et d'avoir un historique des modifications sur une certaine période de temps. Dans ce didacticiel, nous verrons comment configurer une sauvegarde périodique incrémentielle à l'aide de Rsync sur Ubuntu 20.04.

Logique de sauvegarde

Lors de la première sauvegarde, tous les fichiers cibles sont placés dans le plein dossier. Lors des lancements suivants, le script met à jour tous les fichiers de ce dossier et place les anciennes versions des fichiers modifiés dans le dossier incrément dossier avec la date correspondante. Ainsi, une sauvegarde complète à jour est constamment maintenue, ainsi qu'une liste des fichiers modifiés pour chaque date. La durée de conservation est paramétrée, ainsi que la fréquence de lancement de la tâche.

Nous avons effectué la configuration de base pour l'interaction des serveurs utilisant Rsync dans le première partie du manuel. Nous allons maintenant créer un script pour les sauvegardes incrémentales régulières.

Création d'un script de sauvegarde

Créez des dossiers pour stocker vos sauvegardes :

sudo mkdir -p /opt/destination/plein
sudo mkdir -p /opt/destination/incrément

Lors de la création d'un fichier de script, vous pouvez sélectionner un dossier d'emplacement. Si vous le mettez dans le /etc/cron.hourly dossier, la synchronisation aura lieu toutes les heures, et si dans le /etc/cron.daily, puis tous les jours, etc. Créons un fichier de script :

sudo nano /etc/cron.hourly/backup

Évitez les points dans le nom du fichier de script dans les dossiers du planificateur cron. En savoir plus sur Cron.

Dans le script suivant, vous devez au moins spécifier l'adresse IP correcte du serveur source. Le reste des valeurs peut être laissé tel quel. Collez les lignes suivantes dans le fichier ouvert :

#! / Bin / bash
# Chemin d'accès au dossier pour les sauvegardes
destination=/opt/destination
# Adresse IP du serveur source
ip = 10.5.5.10
# Utilisateur Rsync sur le serveur source
utilisateur=utilisateur-sauvegarde
# La ressource que nous avons configurée dans le fichier /etc/rsyncd.conf sur le serveur source
source=données
# Définissez la période de conservation des sauvegardes incrémentielles en jours
rétention=30
# Lancer le processus de sauvegarde
rsync -a --delete --password-file=/etc/rsyncd.passwd ${user}@${ip}::${src} ${dest}/full/ --backup --backup-dir=$ {dest}/incrément/`date +%Y-%m-%d`/
# Nettoyer les archives incrémentielles antérieures à la période de rétention spécifiée
trouver ${dest}/incrément/ -mindepth 1 -maxdepth 2 -type d -mtime +${retention} -exec rm -rf {} \;

Enregistrez le fichier de script et ajoutez les droits de lancement :

sudo chmod 0744 /etc/cron.hourly/backup

Maintenant, le script synchronisera les données dans la source et la destinationnation toutes les heures, en ajoutant les anciennes versions des fichiers supprimés au dossier correspondant dans / opt / destination/incrément/.