Ajouter un système de sauvegarde automatique sur son serveur

31 Commentaires

Dans ce tutoriel vidéo (sommaire des tutos ici), nous allons voir comment ajouter un système de sauvegarde automatique (autrement dit Backup) sur notre serveur dédié.

Backup-manager est logiciel en ligne de commande qui permet de sauvegarder le contenu de certains dossiers quotidiennement, sous forme d’archives. Il est également capable d’envoyer ces sauvegardes sur un serveur distant via FTP ou SSH. Comme OVH propose un serveur FTP de backup avec ces offres pour les dédiés, nous allons l’utiliser pour sauvegarder tous les fichiers sensibles du serveur (fichier de configuration, base de données, email, site).


(Lien pour voir la vidéo sur Dailymotion ou télécharger la vidéo : installer d’un système de backup)

Installation de backup-manager

Pour installer ce logiciel, la commande « apt-get install backup-manager » est amplement suffisante. Durant l’installation, vous devrez répondre à certaine question pour commencer à configurer Backup-manager. Si vous vous trompez ce n’est pas grave puisqu’on va modifier manuellement la configuration pour ajouter le serveur FTP distant.

Configuration

Le fichier de configuration de backup-manager se situe dans /etc/backup-manager.conf et voici une liste non exhaustive des options intéressantes :

# Répertoire ou sont stockés vos backup
export BM_REPOSITORY_ROOT="/var/archives"
# Durée de vie max des archives
export BM_ARCHIVE_TTL="5"
# Format des archives (peut être aussi tar.gz)
export BM_TARBALL_FILETYPE="tar"
# Répertoire à sauvegarder
export BM_TARBALL_DIRECTORIES="/etc /home /var/lib/mysql /var/www /var/mail"
# Type de fichiers à exclure de la sauvegarde
export BM_TARBALL_BLACKLIST="/var/archives *.mp3 *.avi *.rar *.zip *.ogg *.sql
*.tgz *.mpg *.log *.7z"
# Configuration du FTP
# Méthode d'envoi
export BM_UPLOAD_METHOD="ftp"
# Login FTP
export BM_UPLOAD_FTP_USER="votre login"
# Mot de passe
export BM_UPLOAD_FTP_PASSWORD="votre mot de passe"
# Adresse du serveur FTP distant
export BM_UPLOAD_FTP_HOSTS="adresse du serveur (IP ou hostname)"
# Purge les archives trop anciennes :
export BM_UPLOAD_FTP_PURGE="true"
# Avec un délai de 5 jours :
export BM_UPLOAD_FTP_TTL="5"
# Destination d'upload sur le serveur FTP distant
export BM_UPLOAD_FTP_DESTINATION="/"
# Bonus : exécuter un script lorsque c'est fini
export BM_POST_BACKUP_COMMAND="/etc/votre_script"

N’hésitez pas à activer votre serveur FTP de backup proposé gratuitement par OVH avec l’achat d’un serveur dédié !

Une petite remarque au passage, vous pouvez vous connecter au serveur FTP de backup d’ovh qu’à partir du serveur dédié, il y a une vérification de l’adresse IP. C’est une sécurité qui fait que vous ne pouvez pas vous connecter sur votre serveur de backup à partir de filezilla sur votre PC par exemple.

Automatisation des backups

Dans les vieilles versions de Backup-Manager, le système lançait le script automatiquement. Maintenant il faut créer un fichier de configuration dans le dossier /etc/cron.daily pour que backup-manager se lance tous les jours :

#!/bin/sh
# cron script for backup-manager
test -x /usr/sbin/backup-manager || exit 0
/usr/sbin/backup-manager

N’oubliez pas de donner les droits d’exécution au script avec un chmod 751 /etc/cron.daily/votre_script.

N’hésitez pas à poser vos questions en commentaire, à partager ce billet sur Facebook/Twitter et à rejoindre la page du blog sur Facebook !

Publié le 2 septembre 2011 par Madrzejewski Alexis dans Serveur Dédié

Vous avez aimé ce billet ?

Inscrivez-vous au Flux RSS du blog, suivez-moi sur Twitter ou partager simplement cet article avec vos amis sur Twitter ou Facebook

Inscrivez-vous à la newsletter

Inscrivez-vous à la newsletter en précisant votre prénom et votre adresse email pour recevoir les dernières mises à jour du blog et des tutoriels exclusif par email (En savoir plus)

31 commentaires

Ajouter un commentaire

  1. Pingback: Installation et configuration d’un serveur dédié | Tutoriels-Video

  2. Bonjour,
    Merci pour ce super tuto et bien-sur pour les précédents.
    Les archices sont bien crées mais j’ai un petit problème de transfert par FTP sur ma Dedibox.
    Le problème vient de ma config iptables car quand je remet à 0 Iptables ca marche.
    Par rapport à ton tuto :
    J’ai reconfig proftpf sur les ports passif : 60000:65535
    et ajouter 2 lignes :
    # Allow Passive FTP Connections
    iptables -t filter -A INPUT -p tcp –sport 60000:65535 –dport 60000:65535 -m state –state ESTABLISHED -j ACCEPT

    iptables -t filter -A OUTPUT -p tcp –sport 60000:65535 –dport 60000:65535 -m state –state ESTABLISHED,RELATED -j ACCEPT
    echo « ftp ok »

    Mais toujours le même problème.
    Si vous avez des pistes je suis preneur

    Répondre
    • J’ai trouvé, il suffit de créé une règle en plus dans les iptables dans #FTP In

      iptables -t filter -A INPUT -p tcp –dport 1024:65535 -s ADRESSE_IP_SERVEUR_BACKUP -j ACCEPT

      Ce qui se traduit par ouvre les ports 1024->65535 pour l’adresse du serveur de backup, même si on perd un peu de sécurité il y a peux de chance que quelqu’un puisse hacker le serveur de backup d’OVH et prendre le contrôle de l’ip.

      Merci encore pour le tuto :)

      Répondre
    • dotMastaz

      Pour ma part, j’ai juste décommenté la ligne:
      PassivePorts 49152 65534
      Et ça fonctionne !!

      Répondre
  3. Mjlayak

    J’ai un soucis l’hors du lancement de Backup-Manager :

    La méthode de téléchargement « Ftp » n’est pas supportée ; ignoré.

    De plus dans les fichiers pour la langue la UTP-8 est mise mais j’ai encore les caractères incorrecte.

    Merci de m’aider dans c’est problème.

    Répondre
    • Mjlayak

      Aprés avoir corrigé l’autre bug, qui etait le F majuscule de ftp j’en est un nouveau.
      aprés s’etre connecté sur le FTP , et aprés avoir fait ls, sa reste bloqué sur :
      200 PORT command succesful
      Impossible aprés d’ecrire normalement avec le ftp>

      Répondre
  4. Bonjour,

    Rsnapshot pourrait être intéressant et/ou complémentaire pour du backup de données.

    Répondre
  5. omaze

    salut..

    Ca à l’air de marcher pour moi, mais j’ai l’erreur suivante :
    monvps :/etc/cron.daily# backup-manager
    Erreur rapport?e par backup-manager-upload pour la m?thode ??ftp??, voir ??/tmp/bmu-log.DlrCCf??.

    Répondre
  6. GergE

    Petite remarque, si vous réalisez les sauvegardes de vos bases MySQL par les fichiers en mode Tarball, vous aurez des problèmes de données intègres.
    Il faut utiliser absolument la méthode mysql qui réalise un Dump des bases ce qui donne :

    BM_ARCHIVE_METHOD= »tarball mysql »

    Renseignez également les infos présentent à la partie mysql dans le fichier
    /etc/backup-manager.conf

    Ainsi vous sauvegardez vos dossiers de fichier (avec tarball) et vos bases de données (avec mysql) de façon correcte.

    Pour des raisons de sécurité, il vous faudra créer au préalable un utilisateur spécifique à mysql ayant des droits de lecture et de « lock tables »
    Attention, éviter de mettre le symbole $ dans votre mot de passe, sinon cela ne fonctionnera pas.

    Répondre
    • Bonjour GergE,

      Merci pour cette précision, très utile en effet, que j’ai découvert il n’y a pas si longtemps justement ! A l’époque du tournage du tutoriel, je n’avais pas vu cette option (pourtant très clairement indiqué dans le fichier de conf en commentaire).

      Par contre, un grand merci pour l’astuce de l’utilisateur spécifique, notamment avec le lock tables, je n’y avais absolument pas pensé !

      Répondre
    • dotMastaz

      Très intéressant, mais incomplet des certains noobs comme moi, tu pourrais argumenter ?
      Merci bcp !

      Répondre
      • Bonjour dotMastaz,

        Alors pour activer l’option de sauvegarde SQL, il faut juste modifier cette ligne comme ça : BM_ARCHIVE_METHOD= »tarball mysql ». En gros ajouter qu’on veut une backup SQL propre.

        Pour le « lock table », c’est un droit pour les utilisateurs dans SQL. Ça leur permet de verrouiller les tables pendant qu’ils travaillent dessus pour éviter des conflits (genre un autre utilisateur qui vient insérer des données). Dans le cas d’une sauvegarde c’est important, car si au même instant que l’on exporte les données, un autre utilisateur en insère, ça met un peu le bazar (dans le meilleur des cas, les nouvelles données ne sont pas sauvegardés, dans le pire ça plante tout).
        On doit pouvoir activer ce droit quand on créé un utilisateur dans phpmymadin.
        Pour le symbole $ c’est tout simplement parce que le shell l’interprète (comme une variable, qui n’existera pas pour le coup).

  7. lekiend

    Bonjour,
    Merci pour tous vos tutos qui sont très intéressant.
    Y aurait-il moyen d’envoyer les fichiers de backup vers Amazon S3 ?
    Merci pour votre avis.
    Dimitri

    Répondre
    • Bonjour,

      Oui, c’est possible, dans le fichier de configuration de backupmanager, il y a des lignes concernant amazon S3. Après je ne peux pas vous en dire davantage puisque je n’ai jamais testé. Je pense qu’il existe des tutoriels de toute manière « backupmanager amazon s3″ dans google vous renseignera.

      Répondre
  8. Zicguy

    Bonjour Alexis,
    Cette méthode de backup fonctionne plutôt bien, merci.
    Par contre à quoi sert de sauvegarder le /etc ? En cas de panne serveur, comment faire pour restaurer le système sans avoir à tout réinstaller ?

    Merci d’avance.

    Répondre
    • Bonjour Zicguy,

      Effectivement, on ne peux pas remettre le /etc qui à été sauvegardé sur un nouveau serveur en cas de problème, mais je le sauvegarde pour récupérer les fichiers de configuration. Quand ça fait 1 an qu’on a pas touché au conf du serveur, ça fait du bien de récupérer les conf sauvegardés pour s’inspirer, on gagne du temps au moins.

      Répondre
      • Zicguy

        Oui effectivement, ca permet de gagner un peu de temps.
        Tu connaitrais pas un moyen de restaurer un serveur rapidement en cas de problèmes ? La contrainte est la même que dans ton tuto, c’est à dire de passer par un FTP distant (donc sans rsync ou ssh notamment).

      • On doit pouvoir faire des choses intéressantes avec Rsync mais je n’ai pas vraiment regardé.

        Pour rétablir un serveur rapidement, on peut le cloner une fois qu’il est près et opérationnel + un clone de temps en temps.

        Sinon, je me pencherais plus vers des solutions de virtualisations qui propose ce genre de chose, migration à chaud, haute disponibilité, clone de serveur.

  9. zicguy

    Avec quoi peut on cloner un serveur ? Est-il possible de le faire automatiquement et à chaud ?
    Rsync et la virtualisation sont pour le moment exclus dans mon cas.

    Répondre
    • Malheureusement je n’ai pas de nom de logiciel en tête, n’ayant pas encore besoin de cette méthode. On doit pouvoir le faire avec « tar » mais il faut être un peu bourrin. Il doit y avoir quelques solutions avec la commande « dd » également pour copier un disque bit à bit en passant par un liveCD par exemple. Je ne pense pas qu’on puisse le faire à chaud, ça poserai sans doute des conflits avec des fichiers ouverts et utilisés par des processus. Par contre, avec la virtualisation c’est possible (mais exclu je l’ai bien compris).

      Répondre
  10. dotMastaz

    Eh bien encore merci pour le tuto.
    Pour backup-manager, il me crée bien les fichiers dans /var/archives, mais but sur le ftp et créé cette erreur :
    Can’t use an undefined value as a symbol reference at /usr/share/perl/5.10/Net/FTP/dataconn.pm line 54.

    D’après d’autre forum, l’erreur viendrait de :
    export BM_UPLOAD_FTP_PASSIVE= »true »
    qui ne serait pas bien sur true, alors dans ma config, passive est à true ???

    Répondre
  11. dotMastaz

    La réponse est dans les premiers commentaires de Tnoy et frans2526
    , merci !

    Répondre
  12. Varin

    Bonjour,

    Merci pour vos excellents tuto tout d’abord.

    Par contre, je rencontre un petit soucis avec backupmanager et iptables.
    J’ai configurer backupmanager pour qu’il envoie en ligne les archive.

    Lorsque je lance le backup, j’ai l’erreur suivante qui apparait : Can’t use an undefined value as a symbol reference at /usr/share/perl/5.10/Net/FTP/dataconn.pm line 54.

    le backup se fait, la connexion ftp aussi, cela bloque au moment de l’envoie des données… j’ai donc pensé que iptables y était pour quelque chose… et c’est effectivement lui, si je le déactive tout marche.

    la regle ftp iptables FTP:

    modprobe ip_conntrack_ftp

    # FTP Out
    iptables -t filter -A OUTPUT -p tcp –dport 20:21 -j ACCEPT

    # FTP In
    iptables -t filter -A INPUT -p tcp –dport 20:21 -j ACCEPT
    iptables -t filter -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
    echo « FTP ok »

    Merci de votre aide

    Serveur dédié dédibox

    Répondre
    • Bonjour Varin,

      J’avais eu le même problème une fois, c’était à cause de l’option des ports passifs en FTP. Dans le fichier de configuration de Backupmanager, il y a une option « use passive port », il faut l’activer/désactiver, normalement ça règle le problème.
      Sinon, pour être tranquille, il faut carrément autoriser les connexions sortantes vers le FTP de backup (s’il est sécurisé comme celui d’ovh/online). Voici la configuration que j’ai chez un de mes serveurs Online :

      iptables -t filter -A INPUT -p tcp -s dedibackup-vit.online.net -j ACCEPT
      iptables -t filter -A OUTPUT -p tcp -d dedibackup-vit.online.net -j ACCEPT

      Répondre
  13. Varin

    Merci Alexis de ta réponse,

    J’ai également un serveur dédibox. mais l’ajout de la commande iptables ne change rien, je fois juste qu’il upload simplement le fichier .md5 (taille de 0 octet)

    et après j’ai la jolie erreur :)

    snif…

    Répondre
  14. Varin

    je vais essayer ceci, existe t il une commande pour « recharger la config » avec backuo-manager? ou le simple fait de modifier le fichier prend effet tout de suite?

    Répondre
  15. Jerome

    Bonsoir,

    J’ai suivi le tuto.Je commence à coincer au niveau du script backup-manager.Apres avoir copier le script et modifier avec chmod.Au moment ou j’execute le fichier il me retourne cet erreur: /etc/backup-manager.conf: line 480: unexpected EOF while looking for matching ` »‘.Que faire ?

    Merci d’avance

    Répondre
  16. dudd

    Bonjour

    merci pour tous les vidéo vraiment très pédagogiques.

    au niveau de la sauvegarde, j’obtiens bien les archives, mais lors de l’envoie vers le ftp de sauvegarde j’ai :

    ##################################################################

    Erreur rapportée par backup-manager-upload pour la méthode « ftp », voir « /tmp/bmu-log.ZjHM0N ».

    ##################################################################

    Une idée?

    Répondre
  17. dudd

    re,

    voila j’ai trouvé la solution en tous cas pour moi ça marche pour tous ceux qui on un problème de transfert du backup vers le serveur ftp d’ovh utilisez cette commande ssh :

    commande ssh : modprobe ip_conntrack_ftp

    et ca marche ! (a réutiliser à chaque fois que vous redémarrer votre serveur)

    rip

    Répondre

Ajouter un commentaire


Ici les commentaires sont en DoFollow, profitez-en mais en abusez pas !
Veuillez ne pas poster de code (php, html ou autre) car il sera bloqué par le site.
Les commentaires ne sont pas immédiatement validés.
Merci de faire une recherche sur Google avant de poser une question.