Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH
Backup Manager permet d’effectuer des sauvegardes quotidiennes du système : il crée des archives dans plusieurs formats de compression (tar, gzip, bzip2, lzma, dar, zip) et peut les exporter vers un serveur FTP.

Dans notre cas, nous allons l’installer et le configurer pour envoyer tout ce qui est important sur notre serveur sur le serveur FTP externe de sauvegarde fourni gratuitement par OVH (100 Go).
Etape 1 : installation de Backup Manager
C’est classique :
aptitude install backup-manager
A la fin de l’installation, un assistant se lance et vous permet de configurer des options par défaut. Ou vous pouvez configurer à la main, comme indiqué dans l’étape suivante.
Etape 2 : configuration de Backup Manager
nano /etc/backup-manager.conf
Par défaut, les archives sont placées dans /var/archives, le répertoire doit être détenu par l’utilisateur root afin que personne d’autre ne puisse en consulter le contenu :
# Where to store the archives export BM_REPOSITORY_ROOT="/var/archives"
Les archives seront conservées 5 jours :
# Number of days we have to keep an archive (Time To Live) export BM_ARCHIVE_TTL="5"
Méthode de compression à utiliser :
export BM_ARCHIVE_METHOD="tarball" export BM_TARBALL_FILETYPE="tar.gz"
Les différents répertoires à sauvegarder : /etc contient les fichiers de configuration des services serveur, /home les données des sites et /var/lib/mysql les bases de données :
# Paths without spaces in their name: export BM_TARBALL_DIRECTORIES="/etc /home /var/lib/mysql"
Ensuite, on renseigne l’utilisateur MySQL dédié aux sauvegardes :
# The user who is allowed to read every databases filled in BM_MYSQL_DATABASES export BM_MYSQL_ADMINLOGIN="backupuser" # its password export BM_MYSQL_ADMINPASS="backuppwd"
Enfin, on s’occupe de la manière dont on traite nos fichiers de sauvegarde. Dans notre cas, nous les uploadons sur le serveur FTP de sauvegarde OVH donc :
export BM_UPLOAD_METHOD="ftp"
Et plus bas :
# the user to use for the FTP connections/transfers export BM_UPLOAD_FTP_USER="ksXXXXXXX.kimsufi.com" # the FTP user's password export BM_UPLOAD_FTP_PASSWORD="FTP-PASSWORD" # FTP specific remote hosts export BM_UPLOAD_FTP_HOSTS="ftpback-XXXX-XXXX.ovh.net" # purge archives on remote hosts before uploading? export BM_UPLOAD_FTP_PURGE="true" # You can specify a time to live for archives uploaded with FTP # This can let you use different ttl's locally and remotely # By default, BM_ARCHIVE_TTL will be used. export BM_UPLOAD_FTP_TTL="5" # destination for FTP uploads (overrides BM_UPLOAD_DESTINATION) export BM_UPLOAD_FTP_DESTINATION="/"
Allez maintenant au bas du fichier. Nous allons exécuter un script PHP à la fin de chaque sauvegarde qui nous avertira par email du bon déroulement de la sauvegarde :
# Enter here some shell script. # It will be executed after the last action of backup-manager. export BM_POST_BACKUP_COMMAND="/etc/backup-manager-email"
Sauvegardez le fichier et retournez dans le shell, la configuration est terminée.
Etape 3 : création du script PHP qui envoie un mail après la sauvegarde
On crée le fichier précedemment renseigné :
nano /etc/backup-manager-email
Et on y ajoute :
#!/usr/bin/php <?php $dest = array('ADMIN@EXAMPLE.COM'); $archives = '/var/archives'; $host = trim(file_get_contents('/etc/hostname')); clearstatcache(); $dir = opendir($archives); if($dir) { while(false !== ($filename = readdir($dir))) { if($filename[0]!='.' && preg_match('/'.date('Ymd').'/',$filename)) { $thefile = $archives.'/'.$filename; $size = exec("ls -l '".$thefile."' | awk '{print $5}'"); if($size > 0) { $pagetext.= $filename." (".round($size/1000000000,2)." Go)\n"; } else { $pagetext.= $filename." (? Go)\n"; } $totalsize += $size; } } $pagetext .= "\nTotal : ".round($totalsize/1000000000,2)." Go\n"; } foreach($dest as $d) { mail($d,'['.$host.'] Backup OK',$pagetext); } ?>
Il ne vous reste plus qu’à rendre le script exécutable avec :
chmod +x /etc/backup-manager-email
Etape 4 : création d’une tâche cron pour automatiser les sauvegardes
Il ne nous reste plus qu’à automatiser tout cela, en utilisant CRON bien sûr. Lancez la commande suivante, qui crée le fichier /etc/backup-manager.sh :
cat << EOF > /etc/backup-manager.sh && chmod 700 /etc/backup-manager.sh #!/bin/sh test -x /usr/sbin/backup-manager || exit 0 /usr/sbin/backup-manager EOF
Ensuite, éditez le crontab pour y ajouter votre ficher backup-manager.sh :
crontab -epuis insérez la ligne :
0 5 * * * /etc/backup-manager.sh
Vos données seront alors sauvegardées chaque matin à 5h.
Conclusion
Voilà, vous êtes parés : toutes les données vitales du serveur sont maintenant sauvegardées automatiquement sur le serveur de sauvegarde OVH.
Il ne vous reste plus qu’à vous connecter sur le serveur de sauvegarde via le serveur et vérifier que les fichiers sont effectivement uploadés. Un pas de plus vers la redondance/intégrité des données.
Sommaire de la série Monter un serveur dédié de A à Z
- Serveur dédié : installation d’Apache, PHP, MySQL et Webmin
- Serveur dédié : créer la base de données MySQL et importer WordPress
- Serveur dédié : créer et activer un Virtual Host sous Apache
- Serveur dédié : changer les DNS du nom de domaine et le faire pointer vers le serveur
- Serveur dédié : sécurisation des services avec iptables et fail2ban
- Serveur dédié : sécurisation de la couche TCP/IP
- Serveur dédié : création d’un serveur mail Postfix (sécurisé avec Saslauthd et certificat SSL) et Courier (accès POP et IMAP) utilisant une base MySQL d’utilisateurs/domaines virtuels
- Serveur dédié : sécuriser Apache 2 avec ModSecurity
- Serveur dédié : CHMOD récursif sur des fichiers ou répertoires en ligne de commande
- Serveur dédié : installer APC comme système de cache et configurer Varnish comme reverse-proxy pour Apache pour améliorer les performances
- Serveur dédié : afficher la véritable IP derrière un reverse-proxy comme Varnish
- Serveur dédié : intégrer SSH à WordPress pour mettre à jour le core, les plugins et les thèmes
- Serveur dédié : installer la dernière version d’APC par SVN
- Serveur dédié : analyse des performances du serveur
- Serveur dédié : mettre à jour le noyau Debian de la Kimsufi
- Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH
- Serveur dédié : configurer la limite mémoire pour PHP et Suhosin