Sauvegarder une base de données MySQL
J'utilise personnellement ce script pour faire mes sauvegardes de base de données :
find /home/ubuntu/sauvegardes/files -type f -mtime +14 -exec rm -f {} \;
cd /home/ubuntu/sauvegardes/files/
today=$(date +%Y-%m-%d)
sudo mysqldump -u root -p"<votre-mot-de-passe>" -h <ip-de-votre-serveur-mysql> -P 3306 <nom-base-de-donnees-1> > "$today""_<nom-base-de-donnees-1>.sql""
sudo mysqldump -u root -p"<votre-mot-de-passe>" -h <ip-de-votre-serveur-mysql> -P 3306 <nom-base-de-donnees-2> > "$today""_<nom-base-de-donnees-2>.sql"
sudo mysqldump -u root -p"<votre-mot-de-passe>" -h <ip-de-votre-serveur-mysql> -P 3306 <nom-base-de-donnees-3> > "$today""_<nom-base-de-donnees-3>.sql"
cd ../
lftp -f "
open -u <votre-identifiant-sftp>, sftp://<votre-ip-sftp>:<votre-port-sftp>
set sftp:connect-program 'ssh -o StrictHostKeyChecking=accept-new -a -x -i /home/ubuntu/key'
mirror -R --delete /home/ubuntu/sauvegardes/files/ sauvegardes/
quit
"
Afin de l'utiliser, il faut au préalable aovir un serveur SFTP distant sur lequel seront déposées les sauvegardes. Il faut aussi créer un dossier sauvegardes avec un dossier files à l'intérieur. Pour ma part c'est dans /home/ubuntu/sauvegardes/files/ que j'ai décidé de le faire mais vous pouvez modifier en fonction de votre situation.
Il faut aussi avoir une clé SSH récupérée de votre serveur, pour ma part c'est un C-Panel hébergé chez Hostinger et je peux donc obtenir une clé facilement dans l'interface, je l'ai enregistrée dans /home/ubuntu/key.
Que fait ce script ?
Ce script sert à sauvegarder automatiquement vos bases de données MySQL.
- Il supprime les anciennes sauvegardes qui ont plus de 14 jours pour éviter de remplir le disque.
- Il crée une copie (dump) de plusieurs bases de données MySQL et les enregistre dans des fichiers datés.
- Il envoie ces sauvegardes vers un serveur distant en SFTP, afin d’avoir une copie de sécurité hors du serveur principal.
En résumé : il sauvegarde les bases de données, garde seulement les 14 derniers jours et copie les sauvegardes sur un autre serveur pour plus de sécurité.
Prérequis
Pour utiliser ce script vous aurez besoin d'installer les outils "mysqldump" et "lftp".
sudo apt update
sudo apt install mysql-client lftpIl sera aussi nécessaire de rendre le script exécutable.
Automatisation
Afin d'automatiser l'exécution de ce processus de sauvegardes, vous pouvez mettre en place une tâche CRON.
crontab -ePour ma part je veux que ça se lance tous les jours à 17h30, je mets donc ceci tout en bas :
30 17 * * * sudo -u root /home/ubuntu/sauvegardes/script.shMerci pour votre lecture, j'espère que ça vous aura été utile.
Tim