Installer et configurer Backup Manager sur Debian 4.0 Etch et 5.0 Lenny
Backup Manager est un outil simplifiant la sauvegarde de vos données. Il propose de nombreuses options, et gère beaucoup de méthodes de sauvegarde.
Installation
En premier lieu, installez backup-manager en ne changeant rien aux paramètres proposés par défaut:
DEBIAN_FRONTEND='noninteractive' /usr/bin/apt-get install backup-manager
Nous installons aussi quelque logiciels suplémentaires tels que bzip2, la bibliothèque Perl de connexion aux serveurs FTP, ...:
/usr/bin/apt-get install bzip2 libnet-lite-ftp-perl
Nous allons faire en sorte que les utilisateurs appartenant au groupe "backup" puissent consulter les archives, mais ne puissent les modifier.
/bin/sed -i -e 's/[#]*\(.*BM_REPOSITORY_GROUP=\).*$/\1"backup"/' \
-e 's/[#]*\(.*BM_REPOSITORY_CHMOD=\).*$/\1"750"/' \
-e 's/[#]*\(.*BM_ARCHIVE_CHMOD=\).*$/\1"640"/' \
/etc/backup-manager.conf
Nous renseignons un port par défaut pour les éventuels uploads via SSH, afin de palier à un bug présent dans Lenny :
/bin/sed -i -e 's/[#]*\(.*BM_UPLOAD_SSH_PORT=\).*$/\1"22"/' \
/etc/backup-manager.conf
Nous modifions le type de fichier des archives pour tar.bz2 qui prend beaucoup moins de place que tar.gz:
/bin/sed -i -e 's/[#]*\(.*BM_TARBALL_FILETYPE=\).*$/\1"tar.bz2"/' \
/etc/backup-manager.conf
Nous configurons Backup Manager pour créer des sauvegardes incrémentielles (afin d'économiser de l'espace disque):
/bin/sed -i -e 's/[#]*\(.*BM_ARCHIVE_METHOD=\).*$/\1"tarball-incremental"/' \
/etc/backup-manager.conf
Par défaut, les "master" des sauvegardes incrémentielles sont créé tous les lundis. Personnellement, je ne souhaite pas changer ce comportement, mais libre à vous de décider.
Remarque : Si le dossier /var/archives de l'ordinateur ou vous configurer backup-manager est destiné à contenir les sauvegardes d'autres ordinateurs, il peut être intéressant d'activer la purge non stricte des archives, afin que votre /var/archives ne grossisse pas indéfiniment :
/bin/sed -i -e 's/[#]*\(.*BM_ARCHIVE_STRICTPURGE=\).*$/\1"false"/' \
/etc/backup-manager.conf
Gestion de la liste des dossiers sauvegardés
Téléchargez maintenant un petit script permettant d'ajouter et/ou retirer des dossiers de la liste des dossiers sauvegardés. Cela évite de perdre du temps à modifier le fichier de configuration.
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-et-configurer-backup-manager-sur-debian-4-0-etch/update-bm-folders \
--output-document=/usr/bin/update-bm-folders
/bin/chmod +x /usr/bin/update-bm-folders
Ce script s'utilise de la manière suivante:
- pour ajouter un dossier au backup:
update-bm-folders add /mon/dossier
- pour retirer un dossier du backup:
update-bm-folders remove /mon/dossier
Par défaut, Backup Manager est configuré pour sauvegarder les dossiers /etc et /home. Personellement, j'y ajoute les dossiers /root et /var/backups car le premier contient les données de votre compte root, et le second la liste des paquets installés sur votre système:
update-bm-folders add /root
update-bm-folders add /var/backups
Export des sauvegardes
Personne n'étant à l'abri d'une casse matérielle, il est important de multiplier les emplacements de sauvegarde. Backup Manager disposes de plusieurs méthodes pour "exporter" les données sauvegardées.
Copie des sauvegardes sur un serveur distant via SSH
Si vous disposez d'un second serveur avec un accès SSH, vous pouvez configurer Backup Manager pour y copier les sauvegardes. Pour ce faire, renseignez les paramètres suivants (remplacez les valeurs en gras par celles qui vous correspondent):
SSH_USER=backup
SSH_PRIVATE_KEY=/root/backup-rsa-key
SSH_HOST=server.domain.com
SSH_PATH=/var/archives/
Remarque: La clef SSH est créée à l'aide de la commande ssh-keygen.
Et appliquez ces paramètres à la configuration de Backup Manager:
/bin/sed -i -e "s|[#]*\(.*BM_UPLOAD_SSH_USER=\).*$|\1\"${SSH_USER}\"|" \
-e "s|[#]*\(.*BM_UPLOAD_SSH_KEY=\).*$|\1\"${SSH_PRIVATE_KEY}\"|" \
-e "s|[#]*\(.*BM_UPLOAD_SSH_HOSTS=\).*$|\1\"${SSH_HOST}\"|" \
-e "s|[#]*\(.*BM_UPLOAD_SSH_DESTINATION=\).*$|\1\"${SSH_PATH}\"|" \
-e "s|[#]*\(.*BM_UPLOAD_SSH_PORT=\).*$|\1\"22\"|" \
/etc/backup-manager.conf
Une fois ceci fait, activez l'upload vers votre serveur SSH dans Backup-Manager:
/bin/sed -i -e "s/[#]*\(.*BM_UPLOAD_METHOD=\).*$/\1\"scp\"/" \
/etc/backup-manager.conf
Remarque : Le réglage BM_UPLOAD_SSH_PORT est nécessaire au bon fonctionnement de la copie distante sous Debian 5.0 Lenny. De même, le réglage BM_UPLOAD_SSH_TTL est nécessaire pour que la purge des archives uploadées via SSH fonctionne.
Copie des sauvegardes sur un serveur FTP distant
Si vous disposez d'un serveur dédié OVH, sachez que votre serveur est fourni avec un espace FTP équivalent à la taille du disque dur de votre serveur. Voici un exemple de comment configurer Backup Manager pour qu'il copie vos sauvegardes sur un serveur FTP de ce type.
En premier lieu, renseignez les paramètres de connexion au serveur FTP (remplacez les valeurs en gras par celles qui vous correspondent):
FTP_HOST=ftp.ovh.fr
FTP_USER=some-login
FTP_PASSWORD=some-password
FTP_PATH=/my/ftp/folder
Remarque: La valeur FTP_PATH n'est pas forcément la racine de votre compte FTP. Cela peut être n'importe quel dossier présent dans votre compte FTP.
Et appliquez ces paramètres à la configuration de Backup Manager:
/bin/sed -i -e "s|[#]*\(.*BM_UPLOAD_FTP_USER=\).*$|\1\"${FTP_USER}\"|" \
-e "s|[#]*\(.*BM_UPLOAD_FTP_PASSWORD=\).*$|\1\"${FTP_PASSWORD}\"|" \
-e "s|[#]*\(.*BM_UPLOAD_FTP_HOSTS=\).*$|\1\"${FTP_HOST}\"|" \
-e "s|[#]*\(.*BM_UPLOAD_FTP_DESTINATION=\).*$|\1\"${FTP_PATH}\"|" \
/etc/backup-manager.conf
Une fois ceci fait, activez l'upload vers votre serveur FTP dans Backup-Manager:
/bin/sed -i -e "s/[#]*\(.*BM_UPLOAD_METHOD=\).*$/\1\"ftp\"/" \
/etc/backup-manager.conf
Sauvegarder des volumes de données importants vers un espace FTP
Dans certains cas, il est nécessaire de sauvegarder plusieurs dizaines voir centaines de Giga octets de données. Dans ces cas, utiliser une compression en tar.bz2, même incrémentale est hors de propos. Backup Manager permet de traiter ce type de problèmatique via la méthode d'upload "rsync".
rsync est la meilleure méthode pour sauvegarder des volumes de données importants.
Rsync nécessite de disposer d'un accès SSH au serveur distant, et ce n'est pas toujours le cas. Par exemple, l'espace de sauvegarde fourni avec les serveurs dédiés OVH n'est accessible que via FTP, et l'utilisation de rsync est donc exclue. Pour palier à ce problème, j'ai développé un script qui se branche dans votre configuration Backup Manager et permet de transférer des dossiers contenant de gros volumes de données vers un espace FTP.
Pour mettre en place ce script, commencez par créer le dossier destiné à le contenir :
/bin/mkdir --parent /etc/backup-manager
Et téléchargez les fichiers nécessaires :
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-et-configurer-backup-manager-sur-debian-4-0-etch/ftp-copy.conf \
--output-document=/etc/backup-manager/ftp-copy.conf
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-et-configurer-backup-manager-sur-debian-4-0-etch/ftp-copy.sh \
--output-document=/etc/backup-manager/ftp-copy.sh
/bin/chmod +x /etc/backup-manager/ftp-copy.sh
Installez les dépendances de ce script :
/usr/bin/apt-get install yafc
Faites ensuite en sorte que ce script s'exécute avant que Backup Manager ne se termine:
/bin/sed -i -e "s|[#]*\(.*BM_POST_BACKUP_COMMAND=\).*$|\1\"/etc/backup-manager/ftp-copy.sh\"|" \
/etc/backup-manager.conf
La configuration de ce script est très simple. Il utilise les paramètres de l'upload vers un serveur FTP de Backup Manager (voir point précédent).
Important : Il faut obligatoirement que le fichier de configuration de Backup Manager contienne les informations de connexion au serveur FTP.
Modifiez le fichier /etc/backup-manager/ftp-copy.conf, et placez les dossiers que vous souhaitez copier directement sur le serveur FTP dans la variable FTP_COPY_FOLDERS, séparés par des espaces. Par exemple :
export FTP_COPY_FOLDERS="/home/ftp /var/www/uploads /my/really/big/folder"
Ce script est surement améliorable, et je suis ouvert à contribution à ce sujet :). Bonnes sauvegardes XD.
Remarque : J'ai utilisé yafc et non ncftpput comme client FTP, car ncftpput rencontrait des problèmes de déconnexion intempestives lorsqu'utilisé sur le serveur de sauvegarde FTP d'OVH.
Remerciements
- Merci aux développeurs de Backup Manager pour leur travail sur ce superbe outil.
- Merci à Azaad Source pour l'article How to disable debconf for automated install of packages using apt-get.
- Merci à prince_jammys sur irc.freenode.net#bash pour m'avoir indiqué l'article How can I handle command-line arguments to my script easily? sur le site Greg's Wiki.
- Merci à Andy Skelton pour son article Bash equivalent for PHP realpath().
Tutoriel sur backup Manager
j'ai dû chercher longtemps avant de tomber dessus.
Chapeau pour les explications et les détails fournis.
Dorigo consultants















question sur le script pour rsync
D'abord merci pour ce tuto très détaillé et efficace.
J'ai aussi un serveur dédié ovh et je souhaite backuper environ 100 Go via backup manager sur mon compte de backup ovh de 750 go
Je souhaite donc utiliser le script de la partie "Sauvegarder des volumes de données importants vers un espace FTP". Sachant que j'ai déjà configuré les répertoires à sauvegarder dans le fichier de conf de backup-manager (variable BM_TARBALL_DIRECTORIES ), je ne comprends pas pourquoi je dois les respecifier dans le fichier ftp-copy.conf (variable export FTP_COPY_FOLDERS="" )
Je suis "répondable" ici : kimaidou {a t} gmail 'dot' com
Merci d'avance