Une manière simple et rapide de mettre en place un système de sauvegarde automatique de ses données est d’utiliser le paquet "backup-manager".
Installation
Je suis sous Debian Sarge et j’utilise un dépot particulier (backport) pour backup-manager qui va me permettre d’utiliser les sauvergarde incrémentales. Dans "sources.list" :
#backport (backup manager)
deb http://www.backports.org/debian sarge-backports main contrib non-free
L’installation se fait ensuite par :
# apt-get install -t sarge-backports backup-manager
Lors de l’installation, vous pourrez entrer un premier paramétrage pour générer le fichier de configuration. La seule chose importante est de bien préciser la fréquence à laquelle devra être exécuté "backup-manager" (cf. à la fin de l’article)
Entrez les valeurs que vous pensez bonnes, nous allons de toute façon rééditer le fichier de configuration.
Configuration
Attention, je ne vais pas m’attarder sur toutes les parties du fichier de configuration, celui ci étant assez facile à appréhender et très bien détaillé.
Les sections du fichier "/etc/backup-manager.conf" :
Repository - everything about where archives are
# Where to store the archives
export BM_REPOSITORY_ROOT="/backupstore/"
(...)
Les sauvegardes en local seront stockées dans le répertoire "/backupstore". Veillez à attribuer suffisement de place à ce répertoire. On précise l’utilisateur de backup-manager.
Archives - let’s focus on the precious tarballs...
(...)
export BM_ARCHIVE_METHOD="tarball-incremental mysql"
Je choisis de sauver des arborescences de répertoire ainsi que ma base mysql.
Section "TARBALL"
export BM_TARBALL_DIRECTORIES="/etc /home /var/www /var/log"
Je sauve ma configuration ("/etc"), mes home, mes fichier web et les logs.
export BM_TARBALLINC_MASTERDATETYPE="monthly"
export BM_TARBALLINC_MASTERDATEVALUE="1"
Backup-manager va créer des archives principales tous les premier de chaque mois.
Backup method : MYSQl
export BM_MYSQL_DATABASES="mysql cacti spip_blog"
export BM_MYSQL_ADMINLOGIN="root"
export BM_MYSQL_ADMINPASS="mypwd"
export BM_MYSQL_HOST="localhost"
export BM_MYSQL_PORT="3306"
export BM_MYSQL_FILETYPE="bzip2"
Je sauve les base SQL de cacti et de SPIP.
Section "UPLOAD"
export BM_UPLOAD_METHOD="ftp"
# where to upload (global to all methods)
export BM_UPLOAD_HOSTS="dedibackup"
# Where to put archives on the remote hosts (global)
export BM_UPLOAD_DESTINATION="backupstore"
J’entre les paramètres du serveur FTP qui va stocker mes sauvegardes. Je spécifie un répertoire particulier sur le serveur.
The FTP method
# the user to use for the FTP connections/transfers
export BM_UPLOAD_FTP_USER="sd-10602"
# the FTP user's password
export BM_UPLOAD_FTP_PASSWORD="ftppwd"
# purge archives on remote hosts before uploading?
export BM_UPLOAD_FTP_PURGE="true"
Mes accès au serveur FTP.
Tester
On peut lancer backup-manager pour tester si la configuration marche bien :
# backup-manager
On vérifie en local si les archives de sauvegarde ont bien été créées :
# ls /backupstore/
backup-manager sd-10602-etc.20071113.tar.gz sd-10602-home.incremental-list.txt sd-10602-var-log.incremental-list.txt
lost+found sd-10602-etc.incremental-list.txt sd-10602-mysql.20071113.sql.bz2 sd-10602-var-www.20071113.tar.gz
sd-10602-20071113.md5 sd-10602-home.20071113.tar.gz sd-10602-var-log.20071113.tar.gz sd-10602-var-www.incremental-list.txt
Sur le serveur FTP :
# ftp dedibackup
Connected to dedibackup.
220-
Je backup ...
__ _
/ ) _ _/ ' / _ _ / _)
/(_/ (- (/ / () (/ ( /( (/ /) /__
/
... donc je suis
Espace disque : 40To
En cas de difficulte de connexion, contactez
l'assistance technique Dedibox
RAPPEL : Les uploads ne sont pas autorises
depuis une adresse IP externe au reseau Dedibox.
220 Bienvenue sur Dedibackup 2 - Identifiez-vous
Name (dedibackup:bjaton): sd-10602
331 Mot de passe obligatoire
Password:
230 Identifiants Dedibackup acceptes
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd backupstore
250 OK. Le repertoire courant est /backupstore
ftp> ls
200 ok, port alloue
150 Connexion au port 46852
drwxr-xr-x 2 21 21 4096 Nov 13 20:45 .
drwxr-xr-x 3 21 21 4096 Nov 13 20:33 ..
-rw-r--r-- 1 21 21 327 Nov 13 20:44 sd-10602-20071113.md5
-rw-r--r-- 1 21 21 429205 Nov 13 20:44 sd-10602-etc.20071113.tar.gz
-rw-r--r-- 1 21 21 403596731 Nov 13 20:45 sd-10602-home.20071113.tar.gz
-rw-r--r-- 1 21 21 1285 Nov 13 20:45 sd-10602-mysql.20071113.sql.bz2
-rw-r--r-- 1 21 21 2540519 Nov 13 20:45 sd-10602-var-log.20071113.tar.gz
-rw-r--r-- 1 21 21 165181325 Nov 13 20:45 sd-10602-var-www.20071113.tar.gz
226 8 elements au total
ftp>
Tout y est ! On a le mysql en bz2 et mes 4 répertoires en tar.gz.
Vérifier cron
Vérifier bien la fréquence que vous avez entré lors de l’installation :
# ls /etc/cron*/backup-manager
/etc/cron.daily/backup-manager
Backup-manager va être lancé tout les jours :)
Ressources
Voir la doc de dedibox.