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 :

Option Exemple de valeur Description de l’option
Archivage local
BM_REPOSITORY_ROOT /files/backup Répertoire local où stocker les archives
BM_ARCHIVE_TTL 5 Nombre d’archives conservées en local
BM_ARCHIVE_METHOD tarball Type de sauvegarde à réaliser. Peut-être tarball, tarball-incremental, mysql, svn ou pipe
Éléments à sauvegarder
BM_TARBALL_DIRECTORIES /var/www /var/lib/mysql Liste des répertoires à sauvegarder
BM_TARBALL_BLACKLIST /files/backup /var/log Liste de répertoires à ne pas sauvegarder
Transfert des sauvegardes
BM_UPLOAD_METHOD ftp Méthode de transfert des sauvegardes
BM_UPLOAD_FTP_USER usr-jul Identifiant à utiliser pour le serveur FTP
BM_UPLOAD_FTP_PASSWORD juli1bck Mot de passe à utiliser pour le serveur FTP
BM_UPLOAD_FTP_HOSTS backup.monhebergeur.fr Hôte du serveur FTP
BM_UPLOAD_FTP_PURGE true Purge 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_MASTERDATETYPE weekly Fréquence de de la sauvegarde complète. Peut être weekly ou monthly
BM_TARBALLINC_MASTERDATEVALUE 1 Jour 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_ADMINLOGIN root Identifiant à utiliser pour se connecter au serveur MySQL
BM_MYSQL_ADMINPASS juli1bck Mot de passe associé à l’identifiant précédent
BM_MYSQL_HOST “localhost” Hôte du serveur MySQL
BM_MYSQL_PORT 3306 Port d’écoute du serveur MySQL
BM_MYSQL_FILETYPE bzip2 Format de compression. Peut être gzip or bzip2
Serveur SVN
BM_SVN_REPOSITORIES / Chemin absolu du répertoire SVN
BM_SVN_COMPRESSWITH bzip2 Format de compression. Peut être gzip or bzip2
Avancé
BM_PRE_BACKUP_COMMAND Permet d’exécuter un script shell avant la première action de Backup Manager
BM_POST_BACKUP_COMMAND Permet 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