Ajouter un système de sauvegarde automatique sur son serveur
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 !
Je vous recommande aussi la lecture des sujets suivants :
Publié le 2 septembre 2011 par Madrzejewski Alexis dans Serveur Dédié
28 commentaires
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.

Pingback: Installation et configuration d’un serveur dédié | Tutoriels-Video
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
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
Pour ma part, j’ai juste décommenté la ligne:
PassivePorts 49152 65534
Et ça fonctionne !!
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.
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>
Bonjour,
Rsnapshot pourrait être intéressant et/ou complémentaire pour du backup de données.
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??.
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.
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é !
Très intéressant, mais incomplet des certains noobs comme moi, tu pourrais argumenter ?
Merci bcp !
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).
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
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.
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.
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.
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.
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.
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).
Ok. Merci pour toutes ces infos Alexis et encore bravo pour ton site
A bientot;
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 ???
La réponse est dans les premiers commentaires de Tnoy et frans2526
, merci !
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
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
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…
Dans ce cas, essaye de modifier la ligne pour l’upload en mode passif dans la configuration. Active le s’il n’est pas activé ou désactive le s’il l’est déjà. D’après mes recherches, le problème semble venir de la.
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?