Sauvegarder toutes les bases de données
Pré-requis: Pour ne pas rencontrer de problème lors de la sauvegarde, assurez-vous au préalable d'avoir suivi la procédure suivante "Augmenter la limite de fichiers ouvert dans MySQL / MariaDB"
En bonus: Pour automatiser les sauvegardes, référez-vous à la procédure suivante "Sauvegarde journalière automatique (Cron)"
Connexion et mise en place du fichier .sh
Se connecter en SSH à la vagrant
vagrant ssh
sudo su
Créer un fichier shell
nano backup.sh
Coller le contenu ci-dessous dans le fichier créé (Adapter les variables ci-besoin)
#!/bin/bash
# Basic variables
mysqluser="beaubox"
mysqlpass="beaubox"
defaultdir="wwwhost"
backupsdir="backups_db"
# Timestamp (sortable AND readable)
stamp=`date +"%s_%A_%d_%B_%Y_%Hh%M"`
# List all the databases
databases=`mysql -u $mysqluser -p$mysqlpass -e "SHOW DATABASES;" | tr -d "| " | grep -v "\(Database\|information_schema\|performance_schema\|mysql\|test\)"`
# Feedback
echo -e "Dumping to \e[1;32m$bucket/$stamp/\e[00m"
# Loop the databases
for db in $databases; do
# Define our filenames
echo " creating folder"
dumpdir="/wwwhost/$backupsdir/$db"
mkdir -p $dumpdir && cd $dumpdir
# Feedback
echo -e "\e[1;34m$db\e[00m"
# Dump and zip
echo -e " creating \e[0;35m$tmpfile\e[00m"
mysqldump -u $mysqluser -p$mysqlpass --force --opt --databases "$db" > "$stamp".sql
done;
# Delete files older than 10 days
find /$defaultdir/$backupsdir/* -mtime +10 -exec rm {} \;
Enregistrer et quitter
ctrl x
Y
Ajouter les droits au fichier précédemment créé
chmod +x backup.sh
Exécution du script
./backup.sh
Pas de commentaires