Sauvegarde MySQL · 4 min read · Dec 10, 2025
Configurer Rsnapshot, Archivage des Instantanés et Sauvegarde des Bases de Données MySQL sur Debian
Configurer Rsnapshot, Archivage des Instantanés et Sauvegarde des Bases de Données MySQL sur Debian
Par Nedim Hadzimahmutovic < [email protected] >
Ce guide vous montrera comment installer et configurer Rsnapshot, activer l’archivage des instantanés et comment sauvegarder des bases de données MySQL sur Debian.
Installez le programme en utilisant l’utilitaire apt-get :
apt-get install rsnapshotÉditez le fichier de configuration :
nano /etc/rsnapshot.confDéfinissez snapshot_root à l’emplacement où vous souhaitez conserver les sauvegardes :
snapshot_root /var/cache/rsnapshot/Configurez la liste des répertoires/fichiers à sauvegarder.
backup /etc/ localhost/Intervalles de Sauvegarde
Cette section du fichier de configuration est utilisée uniquement pour définir des étiquettes pour les intervalles et combien d’instantanés de chaque niveau conserver. La fréquence à laquelle les instantanés sont réalisés est configurée et exécutée via cron. Le mot-clé interval est suivi d’une étiquette alphanumérique, suivie d’un nombre, signifiant combien d’intervalles (instantanés) conserver. Les étiquettes d’intervalle doivent être uniques et en ordre croissant, le plus petit intervalle doit être listé en premier.
Dans l’exemple suivant, après 6 “hourly” instantanés, le plus ancien “hourly” est supprimé. L’entrée supérieure (dans ce cas “hourly”) est copiée à partir de la source, tandis que les autres entrées se lient simplement au dernier instantané d’un niveau supérieur.
En d’autres termes, pour conserver six sauvegardes par jour (intervalle de quatre heures), sept sauvegardes quotidiennes (une semaine), et quatre sauvegardes hebdomadaires (un mois), spécifiez :
interval hourly 6
interval daily 7
interval weekly 4Les étiquettes d’intervalle “hourly”, “daily”, “weekly” peuvent être modifiées selon vos besoins, par exemple “daysago”, “weeksago” et “monthsago”.
Chaque fois que rsnapshot hourly est exécuté, manuellement ou par cron, il créera un nouvel instantané, fera pivoter les anciens, et conservera les 6 plus récents (hourly.0 - hourly.5).
Points de Sauvegarde
Exemple d’un point de sauvegarde dans le fichier de configuration :
backup /etc/ localhost/ Les points de sauvegarde commencent par le mot backup, après /etc/ se trouve le chemin complet du répertoire qui sera sauvegardé et localhost est un répertoire à l’intérieur de snapshot_root. Vous pouvez changer localhost par n’importe quel nom associant au serveur comme le nom de domaine entièrement qualifié du serveur.
En plus des chemins complets sur le système de fichiers local, vous pouvez également sauvegarder des systèmes distants en utilisant rsync sur ssh. Si vous avez ssh installé et activé (via le paramètre cmd_ssh), vous pouvez spécifier un chemin comme :
backup [email protected]:/etc/ example.com/Gardez à l’esprit que vous devez avoir des connexions basées sur des clés activées pour l’utilisateur root sur example.com, sans phrases de passe pour que cela fonctionne correctement./
Scripts de Sauvegarde
Vous pouvez trouver de nombreux exemples dans le répertoire utils qui sur Debian est situé à /usr/share/doc/rsnapshot/examples/utils/.
Les scripts de sauvegarde sont exécutés avec chaque intervalle le plus bas.
Exécution des Sauvegardes Via Cron
Le fichier cron est situé à
/etc/cron.d/rsnapshotLe contenu par défaut :
# 0 */4 * * * root /usr/bin/rsnapshot hourly
# 30 3 * * * root /usr/bin/rsnapshot daily
# 0 3 * * 1 root /usr/bin/rsnapshot weekly
# 30 2 1 * * root /usr/bin/rsnapshot monthly
Vous devez décommenter les lignes pour activer les sauvegardes.
La première indique à cron d’exécuter cron-apt toutes les 4 heures, ce qui correspond aux paramètres d’intervalle horaire dans le rsnapshot.conf.
Tester la configuration :
Chaque fois que vous apportez une modification au fichier de configuration, effectuez un test de configuration :
rsnapshot configtestVEUILLEZ ÊTRE CONSCIENT DES RÈGLES SUIVANTES :
- Le fichier de configuration nécessite des tabulations entre les éléments, les espaces représentent des arguments pour les scripts
- Les répertoires nécessitent un slash final, exemple :
correct : /home/
incorrect : /home
Archivage des instantanés
cp /usr/share/doc/rsnapshot/examples/utils/rsnaptar /usr/local/bin/Assurez-vous que vos scripts de sauvegarde sont possédés par root, et ne sont pas modifiables par d’autres.
chown root.root /usr/local/bin/rsnaptar
chmod o-w /usr/local/bin/rsnaptarÉditez le script et définissez les chemins des répertoires :
nano /usr/local/bin/rsnaptarDéfinissez TAR_DIR au chemin où l’instantané sera archivé, et SNAPSHOT_DIR à l’endroit où l’instantané quotidien est situé :
TAR_DIR="/home/user/dvd_backup"
SNAPSHOT_DIR="/var/cache/rsnapshot/daily.0"Veuillez noter que le cycle horaire doit se terminer pour que l’instantané quotidien soit créé.
Ce script prend en charge le chiffrement gpg des fichiers, pour le désactiver, commentez la ligne suivante dans /usr/local/bin/rsnaptar :
GPG="/usr/bin/gpg"Planification de l’Exécution Via Cron
nano /etc/cron.daily/rsnaptarAjoutez :
#!/usr/bin/env bash
/usr/local/bin/rsnaptar [email protected]Remarques :
- ce guide n’utilise pas l’option GPG pour chiffrer les fichiers, si cela est une nécessité, je peux mettre à jour le guide pour inclure le chiffrement des fichiers pour une meilleure sécurité,
- par défaut, le script est exécuté de manière autonome, mais il pourrait être modifié pour s’exécuter comme un backup_script via rsnapshot lui-même,
Rsnapshot : Sauvegarde des Bases de Données MySQL
Installez mysql-client si ce n’est pas déjà fait, cela fournira l’utilitaire mysqldump :
# apt-get install mysql-client# cp /usr/share/doc/rsnapshot/examples/utils/backup_mysql.sh /usr/local/bin/Assurez-vous que vos scripts de sauvegarde sont possédés par root, et ne sont pas modifiables par d’autres.
chown root.root /usr/local/bin/backup_mysql.sh
chmod o-w /usr/local/bin/backup_mysql.shCe script est conçu uniquement pour sauvegarder toutes les bases de données dans un seul fichier.
Éditez le script :
nano /usr/local/bin/backup_mysql.shRemplacez
/usr/bin/mysqldump --all-databases > mysqldump_all_databases.sqlpar
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases > mysqldump_all_databases.sqlSi vous devez sauvegarder une seule base de données, utilisez la ligne ci-dessous :
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf DATABASE > DATABASE.SQLAjouter le Script à Rsnapshot
Éditez la configuration de rsnapshot :
nano /etc/rsnapshot.confSous POINTS DE SAUVEGARDE / SCRIPTS, ajoutez ce qui suit :
backup_script /usr/local/bin/backup_mysql.sh localhost/mysqldump/Testez la configuration :
rsnapshot configtestRecevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.