Backup Manager : sauvegarde automatique sur serveur dédié

Publié le dans la catégorie Système 1 com
Backup Manager : sauvegarde automatique sur serveur dédié

Aujourd’hui, je vous propose un petit dossier sur la mise en place d’un système de sauvegarde automatique (backup) sur son serveur dédié de type linux (Debian, Ubuntu, etc…). Le but : sauvegarder des données importantes automatiquement comme l’ensemble des sites internet hébergés, leurs bases de données (BDD), des mails, vos configurations virtual hosts, etc…

Pour cela, nous allons utiliser Backup Manager, gestionnaire de sauvegarde qui vous évitera de perdre des données importantes de votre machine personnelle et / ou de votre serveur dédié d’entreprise.

Rapide tour d’horizon… la solution Backup-manager vous permet tout simplement de réaliser des sauvegardes de fichiers locaux sous formes d’archives (compressées ou pas – ex : tar, tar.gz, tar.bz2, zip, dar) puis de les exporter sur un autre espace de stockage via FTP, SSH, RSYNC ou encore sur CD/DVD. Ces backups peuvent êtres fait de manière complète, incrémentielle et ce de manière périodique avec l’association d’une tache CRON. Vous vous retrouvez donc avec des sauvegardes automatiques totalement paramétrées !

La restauration des données, elle, n’est cependant pas automatisée : il faudra extraire les données des archives pour pouvoir les travailler.

Installation de Backup Manager

Aller, entrons dans le vif du sujet et installons Backup-manager avec la commande suivante :

apt-get install backup-manager

Configuration de Backup Manager

Tout se passe désormais dans le fichier de configuration backup-manager.conf situé dans le répertoire /etc/. Pour cela, éditez le fichier avec la commande suivante :

vi /etc/backup-manager.conf

Il faut ensuite configurer les options selon le type de sauvegarde souhaité. Voici un tableau récapitulatif de différents choix (pas tous mais les plus importants) qui s’offrent à vous :

OptionExemple de valeurDescription de l’option
Archivage local
BM_REPOSITORY_ROOT/files/backupRépertoire local où stocker les archives
BM_ARCHIVE_TTL5Nombre d’archives conservées en local
BM_ARCHIVE_METHODtarballType de sauvegarde à réaliser. Peut-être tarball, tarball-incremental, mysql, svn ou pipe
Éléments à sauvegarder
BM_TARBALL_DIRECTORIES/var/www /var/lib/mysqlListe des répertoires à sauvegarder
BM_TARBALL_BLACKLIST/files/backup /var/logListe de répertoires à ne pas sauvegarder
Transfert des sauvegardes
BM_UPLOAD_METHODftpMéthode de transfert des sauvegardes
BM_UPLOAD_FTP_USERusr-julIdentifiant à utiliser pour le serveur FTP
BM_UPLOAD_FTP_PASSWORDjuli1bckMot de passe à utiliser pour le serveur FTP
BM_UPLOAD_FTP_HOSTSbackup.monhebergeur.frHôte du serveur FTP
BM_UPLOAD_FTP_PURGEtruePurge le répertoire lorsque qu’une archive est expirée
BM_UPLOAD_FTP_DESTINATION/Répertoire de destination où copier les sauvegardes
Sauvegarde incrémentielle
BM_TARBALLINC_MASTERDATETYPEweeklyFréquence de de la sauvegarde complète. Peut être weekly ou monthly
BM_TARBALLINC_MASTERDATEVALUE1Jour de création de la sauvegarde 1 = lundi, 3 = mercredi par exemple pour une sauvegarde par semaine (weekly)
Sauvegarde de la base de donnée MySQL
BM_MYSQL_DATABASES__ALL__Nom de la base de donnée MySQL. __ALL__ sauvegarde toutes les bases
BM_MYSQL_ADMINLOGINrootIdentifiant à utiliser pour se connecter au serveur MySQL
BM_MYSQL_ADMINPASSjuli1bckMot de passe associé à l’identifiant précédent
BM_MYSQL_HOST“localhost”Hôte du serveur MySQL
BM_MYSQL_PORT3306Port d’écoute du serveur MySQL
BM_MYSQL_FILETYPEbzip2Format de compression. Peut être gzip or bzip2
Serveur SVN
BM_SVN_REPOSITORIES/Chemin absolu du répertoire SVN
BM_SVN_COMPRESSWITHbzip2Format de compression. Peut être gzip or bzip2
Avancé
BM_PRE_BACKUP_COMMANDPermet d’exécuter un script shell avant la première action de Backup Manager
BM_POST_BACKUP_COMMANDPermet d’exécuter un script shell après la dernière action de Backup Manager

Pour notre part, dans cet exemple, nous allons réaliser une sauvegarde complète automatique journalière (à 4H du matin) de l’ensemble des éléments suivant :

  • Répertoire /var/www ou est situé un site internet
  • Répertoire /sites-internet/websites ou sont situés plusieurs sites internet
  • Répertoire /var/mail ou sont situés les mails
  • Répertoire /etc/apache2/sites-avalable qui contient tous les Virtual Hosts
  • Répertoire /var/lib/mysql qui contient l’ensemble des bases de données MySQL

Voici donc les options principales modifiées de notre fichier backup-manager.conf

export BM_REPOSITORY_ROOT="/sites-internet/archives-bckpm"
export BM_REPOSITORY_ROOT="/var/archives"
export BM_ARCHIVE_TTL="5"
export BM_ARCHIVE_METHOD="tarball"
export BM_TARBALL_FILETYPE="tar.gz"
export BM_TARBALL_DIRECTORIES="/sites-internet/websites /var/lib/mysql /etc/apache2/sites-available /var/www /var/mail"

Sauvegardes automatisées via un CRON

Alors, comment automatiser tout cela ? Oui, car, jusqu’à présent rien ne nous dit comment faire cette sauvegarde automatiquement de manière journalière. Pour cela exécutez le code suivant dans un shell :

cat << EOF > /var/backup-manager.sh && chmod 700 /var/backup-manager.sh
#!/bin/sh
test -x /usr/sbin/backup-manager || exit 0
/usr/sbin/backup-manager
EOF
#J'ai mis /var/ comme répertoire mais vous pouvez mettre celui de votre choix à partir du moment ou vous le créez auparavant.

Ensuite, éditez le crontab pour y ajouter votre ficher backup-manager.sh :

crontab -e

puis insérez la ligne :

0 4 */1 * * /var/backup-manager.sh

Et voilà, c’est terminé ! Vous n’avez plus qu’à vérifier sur votre ftp serveur ou autre que votre sauvegarde a bien été transférée.

1 commentaire pour "Backup Manager : sauvegarde automatique sur serveur dédié"

  • Le 28 avril 2013 à 14:12 Nicolaï

    Merci Julien pour ce tuto ! ça marche du tonnerre, rapide efficace! exactement ce que je recherchais pour faire une backup de mon wordpress :)

Laisser un commentaire