Sauvegarder une application Web sur Ubuntu avec Backup-manager

By | 31 July 2016

Pour celaAujourd’hui, après une expérience douloureuse et traumatisante, j’ai appris à avoir le réflexe de toujours penser à sauvegarder les applications que je déploie en production. En effet,  un accident peut vite arrivé (une VM qui crashe, un malheureux “drop databse” sur une base de données de production…etc.) et savoir que l’on peut récupérer les données sauvegardées autre part est un véritable soulagement et peut même sauver des vies 🙂 (ou un emploi!). C’est pour cela qu’il existe une multitude de gestionnaires de sauvegarde sur Ubuntu, mais celui que j’utilise et que je vais présenter ici est Backup-manager.

Définir son besoin avant de choisir la solution

Pour une application Web, mon besoin est d’avoir une copie des fichiers sources et de la base de données dans un dossier local et d’exporter, en plus, ces copies vers un serveur FTP au cas où ma VM serait inaccessible. Tout cela doit se faire de manière automatique et selon la fréquence que j’aurai préalablement définie. Pour cela, Backup-manager répond parfaitement à ce besoin. Les sauvegardes locales se font sous forme de dossiers compressés et en cas de besoin, il suffit d’extraire les données là où l’on souhaite. Pour ma part, je l’utilise principalement pour sauvegardées mes applications de production mais vous pourrez l’utiliser pour tout type de fichiers.

Comment installer Backup-manager?

Pour l’installer, exécuter la commande suivante:

sudo apt-get install backup-manager

Lors de l’installation, laisser les paramètres par défaut car nous verrons plus bas la configuration.

Comment configurer Backup-manager?

Pour commancer, avec votre éditeur de texte préféré, ouvrir le fichier /etc/backup-manager.conf. Dans ce qui va suivre, je ne vais présenter que les configurations les plus utilisées. Pour plus de détails sur les configurations possibles de Backup-manager, il suffit de lire les commentaires du fichier de configuration. En effet, il est assez explicite et fournit beaucoup d’informations.

Option Exemple Utilité
BM_REPOSITORY_ROOT /var/archives Répértoire local où les archives seront stockées
BM_ARCHIVE_TTL  7 TTL pour Time To Live. Il s’agit de la durée de sauvegarde des archives.
 BM_ARCHIVE_PREFIX Avec cette option, on peut définir un préfixe aux noms des dossiers d’archives. Si on sauvegarde plusieurs dossiers sur différents serveurs et que les archives sont exportées sur le même serveur FTP, le préfixe permet de mieux s’y retrouver.
 BM_ARCHIVE_METHOD  tarball mysql

 Plusieurs options sont possibles:

  • tarball
  • tarball-incremental
  • mysql
  • svn
  • pipe
  • none
 BM_TARBALL_FILETYPE  tar.gz

 Pour choisir le type de compression. Les valeurs possibles sont:

  • tar
  • tar.gz
  • tar.bz2
  • zip
  • dar
 BM_TARBALL_DIRECTORIES  /home /var/www Avec cette option, on spécifie à Backup-manager le chemin vers le dossier à sauvegarder Pour en spécifier plusieurs, il suffit de séparer les chemins avec un espace.
BM_MYSQL_DATABASES  __ALL__  On peut soit spécifier les noms des bases de données séparées avec des espaces ou bien tout sauvegarder avec “__ALL__”.
 BM_MYSQL_ADMINLOGIN  user Identifiant de connexion à MySQL.

BM_MYSQL_ADMINPASS

password Mot de passe de connexion à MySQL.
 BM_UPLOAD_METHOD  ftp

 Option pour spécifier la méthode de transfert des sauvegardes. Plusieurs valeurs sont possibles:

  • FTP
  • SSH
  • RSYNC
  • Amazon S3
BM_UPLOAD_FTP_USER user

Identifiant de connexion au serveur FTP

BM_UPLOAD_FTP_PASSWORD password

Mot de passe de connexion au serveur FTP

BM_UPLOAD_FTP_HOSTS host

Nom du serveur FTP

Que faire si le fichier archive MySQL généré par Backup-manager est vide?

Dans certains cas, même avec une bonne configuration, il arrive parfois que Backup-manager génère une archive MySQL vide. Dans ce cas, je crée un fichier /root/.my.cnf où je mets les lignes suivantes:

[mysqldump]
user=user
password=password

Comment programmer la sauvegarde automatique?

Pour lancer la sauvegarde tous les jours à 8h30, il faut ajouter la ligne suivante dans la crontab. Pour cela, exécuter la commande suivante:

crontab -e

Ensuite, ajouter la ligne suivante:

30 8 * * * /usr/sbin/backup-manager

J’ai noté en clair les mots de passe dans le fichier de configuration, comment le sécuriser?

Afin de sécuriser au mieux le fichier de configuration, exécuter les commandes suivantes:

sudo chown root:root /etc/backup-manager.conf
sudo chmod 640 /etc/backup-manager.conf

Si vous souhaitez en savoir plus, cliquez-ici ou ici.

Leave a Reply

Your email address will not be published. Required fields are marked *