Tout d’abord, si tu veux mettre en place une sauvegarde automatique de MariaDB sur Debian 11, c’est simple !
Et attention, je m’adresse à tout le monde, car avant d’entrer dans les détails : j’ai une petite info pour toi. Si tu penses que ta sauvegarde locale est la solution à tous tes problèmes, eh bien, détrompe-toi ! Ce n’est pas parce que tu as copié tes données sur ton ordinateur que tu es à l’abri de tout pépin.
Non, non, non, je te vois venir avec tes gros sabots. Il ne faut pas confondre une sauvegarde locale avec une sauvegarde de qualité. Parce que si ton stockage se fait la malle, tu peux dire adieu à tes données. Et si tu ne veux pas te retrouver dans la panade, tu as intérêt à en faire ensuite une copie elle aussi automatique sur un autre support, comme un disque dur externe, un cloud ou même une clé USB.
Donc, pour résumer : une sauvegarde locale, c’est bien beau, mais ce n’est pas une vraie sauvegarde. Alors, fais gaffe à ne pas te faire avoir !
Ceci étant dit, lecteur, si veux continuer, tu suis ces étapes-là :
D’abord, tu tapes ça :
sudo apt install mariadb-backup
Après, tu crées un fichier pour la config de la sauvegarde. Par exemple, tu peux faire :
sudo nano /etc/mysql/mariadb.conf.d/mariadb-backup.cnf
Et là, tu mets ça :
[mariabackup]
user = backup
password = TonMotDePasse
Et tu remplaces « TonMotDePasse » par ton propre mot de passe.
Ensuite, tu créés un compte utilisateur pour avoir le droit d’effectuer la sauvegarde. Pour ça, tu tapes :
sudo mysql
Et après, tu tapes :
CREATE USER 'backup'@'localhost' IDENTIFIED BY 'TonMotDePasse';
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT, CONNECTION ADMIN ON *.* TO 'backup'@'localhost';
Encore une fois, tu remplaces « TonMotDePasse » par ton propre mot de passe.
Après, tu crées le script de sauvegarde. Pour ça, tu tapes :
sudo nano /usr/local/bin/mariadb-backup.sh
Et là, tu mets ça :
— Pour ma part j’ai configuré le nombre max de backups à 504 (21 jours à raison d’une sauvegarde chaque heure), au lieu de 42—
#!/bin/bash
MAX_BACKUPS=42
BACKUP_DIR=/var/backups/mysql
DATE=$(date +%Y-%m-%d-%H-%M-%S)
# Créer une nouvelle sauvegarde
mariabackup --backup --target-dir=$BACKUP_DIR/$DATE
# Compter le nombre de sauvegardes actuelles
NUM_BACKUPS=$(find $BACKUP_DIR -maxdepth 1 -type f -name "*.xz" | wc -l)
# Si le nombre de sauvegardes est supérieur à MAX_BACKUPS, supprimer la plus ancienne
if [ $NUM_BACKUPS -gt $MAX_BACKUPS ]; then
OLDEST_BACKUP=$(find $BACKUP_DIR -maxdepth 1 -type f -name "*.xz" | sort | head -n 1)
rm -f $OLDEST_BACKUP
fi
# Compresser la sauvegarde en format xz, on est pas pressés donc priorité cpu faible
nice -n 19 tar -cJf $BACKUP_DIR/$DATE.tar.xz $BACKUP_DIR/$DATE
# Supprimer la sauvegarde non compressée
rm -rf $BACKUP_DIR/$DATE
Enregistre et ferme le fichier de script (CTRL+O), puis rends-le exécutable en tapant :
sudo chmod +x /usr/local/bin/mariadb-backup.sh
Et enfin, configure une tâche Cron pour que le script de sauvegarde s’exécute automatiquement. Par exemple, si tu veux que ça se fasse tous les jours à minuit, tu tapes :
sudo crontab -e
Et tu ajoutes ça à la fin du fichier de tâches Cron : (une sauvegarde chaque jour)
0 0 * * * /usr/local/bin/mariadb-backup.sh
#Autre possibilité, sauvegarder toutes les 8 heures :
0 */8 * * * /usr/local/bin/mariadb-backup.sh
Avec cela, tu aura donc une « sauvegarde » locale de MariaDB. N’oublie pas ensuite de faire une copie régulière sur un autre support.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.