Réaliser une sauvegarde de la totalité des données hébergées sur DTC avec Rsync:

1. Sauvegardes standards non-incrémentés

Tout d'abord, vous devez configurer les clefs publiques et privées pour ssh. Voici comment faire:

Sur le serveur sur lequel vous envoyez vos sauvegardes (nous le nommerons backup-server), généré la paire de clefs publique et privée, avec une phrase secrète vide. Vous pouvez effectuer cela en utilisant:

   ssh-keygen -t rsa

Ensuite téléversez la clef publique qui est située dans .ssh/id_rsa.pub sur le serveur de sauvegarde (backup-server), et mettez la sur le VPS dans:

   /root/.ssh/authorized_keys2

vérifiez sur le serveur de sauvegarde que vous pouvez vous connecter en ssh sur le VPS sans devoir entrer aucun mot de passe. Ensuite installer rsync sur chacun des serveurs avec apt-get install rsync. Depuis le serveur de sauvegarde, vous devez pouvoir taper:

   rsync --delete -e ssh -azvp hostname-of-vps.com:/var/www /local/destination

avec /local/destination étant votre chemin de destination local sur le serveur de sauvegarde.

Le mieux est alors de faire une sauvegarde automatique de toutes vos bases de données en utilisant un petit script sur le VPS. Quelque chose comme éa devrait pouvoir le faire:

   #!/bin/bash

   pushd /var/www
   mysqldump -c --all-databases >backup.sql
   gzip backup.sql
   popd

2. Utilisation de automysqlbackup pour sauvegarder vos bases de données

Vous pouvez utilisez automysqlbackup pour effectuer une sauvegarde quotidienne de vos bases de données. Vous trouverez ce script sur sourceforge, il est d'ailleurs relativement simple à comprendre, nous n'allons donc pas nous étendre sur son fonctionnement. Juste une précision, nous utiliserons /var/www/sql_backup comme destination nous avons donc juste besoins de sauvegarder l'intégralité de /var/www soit tout ce qui est inclus dans la sauvegarde de rsync, incluant les exportations de bases de données.

Sauvegardes incrémentées en utilisant dirvish:

Premièrement, créez un utilisateur dirvish sur le serveur que vous voulez sauvegarder. Ce serveur DOIT avoir les droits pour pouvoir exécuter rsync, donc éditez /etc/sudoers et ajouter une ligne comme celle-ci:

   dirvish ALL = NOPASSWD: /usr/bin/rsync

ensuite depuis le serveur de sauvegarde, vous aurez besoins d'accéder à ce fichier. En root, sur le serveur de sauvegarde, générez une clef avec ssh-keygen (la façon de faire est décrite ci-dessous), avec une phrase secrète vide. copiez le résultat .ssh/id_rsa.pub dans le fichier /home/dirvish/.ssh/authorized_keys2 du serveur de sauvegarde. Ensuite essayez de vous logger, le terminal ne devrait vous demander aucun mot de passe.

Ensuite, installez dirvish sur le serveur de sauvegarde (lé oé sont stockées les sauvegardes):

   apt-get install dirvish

Puis éditez /etc/dirvish/master.conf avec un contenu comme celui-ci:

   bank:
           /backup
   index:  text

   exclude:
           lost+found/
           /proc
           /sys
           /etc/mtab
           /var/cache/apt
           core
           *~
           .nfs*
           /tmp/*
   Runall:
           host1.example.com
           host2.example.com
   image-default: m%d
   expire-default: +7 days
   rsh: ssh -o "BatchMode yes" -o "StrictHostKeyChecking no"

La séquence bank: est le chemin oé vous stockez vos sauvegardes. Il peut y en avoir plus d'un. Runall: correspond à ce que vous avez sauvegarder. Ce peut être ce que vous voulez. Pour chacune des lignes du runall, vous devez créer un répertoire. Pour cet exemple vous aurez besoins, pour les créer, d'exécuter les commandes suivantes:

    mkdir -p /backup/host1.example.com/dirvish
    mkdir -p /backup/host2.example.com/dirvish

Aprés cd dans le premier répertoire et éditez default.conf. Ajoutez ce qui suit au fichier:

   rsync-client: sudo rsync
   client: dirvish@node0103.gplhost.com
   tree: /var/www/sites

Maintenant vous êtes presque prét. Vous devez juste initialiser la première sauvegarde (ce qui peut prendre du temps). Faite ceci avec cette simple commande:

   dirvish --vault host1.example.com --init

Cela va créer la première sauvegarde de rsync, c'est pour cela que ce peut étre long. Soyez donc patient. Une fosi fait, vous n'avez rien d'autre à faire. Le paquet de dirvish inclus déjà les tables cron pour exécuter les tâches suivantes.

Et c'est tout, c'est cool! Assez simple, non?

Page last modified on January 22, 2012, at 09:00 PM EST