Sauvegarde MySQL · 1 min read · Jan 30, 2026
Script Shell Pour Sauvegarder Toutes Les Bases De Données MySQL, Chaque Table Dans Un Fichier Individuel Et Télécharger Sur FTP À Distance
Script Shell Pour Sauvegarder Toutes Les Bases De Données MySQL, Chaque Table Dans Un Fichier Individuel Et Télécharger Sur FTP À Distance
Ce script créera une sauvegarde de chaque table dans chaque base de données (un fichier par table), le compressera et le téléchargera sur un ftp distant.
Tout d’abord, créez un utilisateur mysql avec des privilèges de sélection et de verrouillage des tables (ou utilisez root).
Ensuite, utilisez ce script dans votre crontab toutes les heures :
#!/bin/sh
# Script de sauvegarde Système + MySQL
# Copyright (c) 2008 Marchost
# Ce script est sous licence GNU GPL version 2.0 ou supérieure
# ---------------------------------------------------------------------
#########################
######À MODIFIER#######
### Configuration du Système ###
BACKUP=VOTRE_RÉPERTOIRE_DE_SAUVEGARDE_LOCAL
### Configuration MySQL ###
MUSER="UTILISATEUR_MYSQL"
MPASS="MOT_DE_PASSE_UTILISATEUR_MYSQL"
MHOST="localhost"
### Configuration du serveur FTP ###
FTPD="VOTRE_RÉPERTOIRE_DE_SAUVEGARDE_FTP"
FTPU="VOTRE_UTILISATEUR_FTP"
FTPP="VOTRE_MOT_DE_PASSE_UTILISATEUR_FTP"
FTPS="ADRESSE_DU_SERVEUR_FTP"
######NE PAS FAIRE DE MODIFICATION EN DESSOUS#####
#########################################
### Binaires ###
TAR="[0m$(which tar)"
GZIP="[0m$(which gzip)"
FTP="[0m$(which ftp)"
MYSQL="[0m$(which mysql)"
MYSQLDUMP="[0m$(which mysqldump)"
### Aujourd'hui + heure au format 24h ###
NOW=$(date +"%d%H")
### Créer un répertoire horaire ###
mkdir $BACKUP/$NOW
### Obtenir tous les noms de bases de données ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
### Créer un répertoire pour chaque base de données, sauvegarder les tables dans des fichiers individuels ###
mkdir $BACKUP/$NOW/$db
for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
do
FILE=$BACKUP/$NOW/$db/$i.sql.gz
echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
done
end
done
### Compresser toutes les tables dans un joli fichier à télécharger ###
ARCHIVE=$BACKUP/$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW
$TAR -cvf $ARCHIVE $ARCHIVED
### Sauvegarder la sauvegarde en utilisant FTP ###
cd $BACKUP
DUMPFILE=$NOW.tar.gz
$FTP -n $FTPS <Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.