J’ai enfin mis en place sur mon serveur un script de sauvegarde correct. Il exporte les bases de données dans des fichiers séparés et datés, avant de les envoyer sur rsync.net, un service de sauvegardes externalisé utilisant rsync, scp ou sftp au choix. C’est cette première solution que j’ai choisie.

#!/bin/sh

IFS='

'

DBHOST="" # Votre serveur de base de données
DBUSER="" # Votre utilisateur de base de données
DBPASS="" # Votre mot de passe de base de données
BACKUPDB="" # Le chemin vers votre répertoire de backup sans le / final
DBDATE=`date "+%Y%m%d"`
DBTODUMP=$(mysql -u$DBUSER -h$DBHOST -p$DBPASS -Bse 'SHOW DATABASES')

RSHOST="" # Hôte de votre service rsync
RSPATH="" # Liste des répertoires à sauvegarder, sans le / final, séparés par un espace
RSEXCLUDE="" # Chemin vers le fichier d'exclusion rsync

# Sauvegarde des bases de données
for db in $DBTODUMP
do
  mysqldump -u$DBUSER -p$DBPASS -q -e --single-transaction --add-drop-database --add-drop-table -B $db > ${BACKUPDB}/${db}_${DBDATE}.sql
  bzip2 ${BACKUPDB}/${db}_${DBDATE}.sql
done

# Sauvegarde de système de fichiers
rsync -avz --delete --progress --exclude-from=${RSEXCLUDE} ${RSPATH} ${BACKUPDB} ${RSHOST}:

# Suppression des fichiers de sauvegarde
rm ${BACKUPDB}/*.bz2

Et voilà, il ne vous reste plus qu’à insérer ce script dans votre crontab pour le faire tourner quotidiennement, et le tour est joué.

Perry the Platypus wants you to subscribe now! Even if you don't visit my site on a regular basis, you can get the latest posts delivered to you for free via Email: