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.
Ce guide est obsolète. Utilisez la nouvelle version sur le Help Desk Biapy:
Installer et configurer Backup Manager sur Debian
Ce guide a été testé sur :
- Debian 5.0 Lenny
- Debian 6.0 Squeeze
Installation
Installez backup-manager en ne changeant rien aux paramètres proposés par défaut:
DEBIAN_FRONTEND='noninteractive' command apt-get install backup-manager bzip2
Installez les logiciels nécessaire aux bon fonctionnement de Backup Manager :
if [ -n "$(command apt-cache show libnet-lite-ftp-perl)"]; then command apt-get install libnet-lite-ftp-perl fi
Autorisez le groupe "backup" a consulter les archives, sans pouvoir les modifier :
command 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'
Ajoutez le paramètre du niveau de détail des fichiers journaux :
if [ -z "$(command grep 'BM_LOGGER_LEVEL' '/etc/backup-manager.conf')" ]; then command echo ' export BM_LOGGER_LEVEL="warning"' \ >> '/etc/backup-manager.conf' fi
Renseignez un port par défaut pour les éventuels uploads via SSH, afin de palier à un bug présent dans Lenny :
command sed -i \ -e 's/[#]*\(.*BM_UPLOAD_SSH_PORT=\).*$/\1"22"/' \ '/etc/backup-manager.conf'
Modifiez le type de fichier des archives pour tar.bz2 :
command sed -i \ -e 's/[#]*\(.*BM_TARBALL_FILETYPE=\).*$/\1"tar.bz2"/' \ '/etc/backup-manager.conf'
Activez les sauvegardes incrémentielles :
command 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.
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 :
command 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.
command 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' command 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. Vous pouvez y ajouter 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.
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