Je viens d’investir dans des supports de backup donc il est temps de les remplir. Je choisis rdiff-backup qui a l’air le système le plus performant et économe en espace disque, couplé à backup-ninja. Je précise, ces outils ne sont que pour Linux. Si vous avez les moyens d’utiliser un système pas libre qui marche moyennement bien (l’art de la litote), vous avez sûrement aussi les moyens de vous payer un système de sauvegarde non-libre qui marche tout aussi moyennement. Si vous êtes malgré tout courageux, rdiff-backup fonctionne sous Windows et vous devriez facilement pouvoir bricoler un script pour sauvegarder ce que vous voulez (et remplacer backupninja).
Configuration de la connexion
Le principe est le suivant : chaque utilisateur root de chaque machine va se connecter via ssh sur le compte root du serveur de backups (miaou) et déposer son contenu (avec rdiff-backup) dans /srv/backup/<nom_de_la_machine>.
backupninja permet, quant-à lui, de définir des tâches à effectuer avant le backup (un export de base de données par exemple), quoi inclure et quoi exclure du backup sans se taper la ligne de commande complète à la main, voire d’effectuer des tâches après la sauvegarde.
Sur le serveur de backups (miaou)
sudo apt-get install rdiff-backup
Créer une clé spéciale pour root qui permettra de s’y connecter sans mot de passe
sudo -i ssh-keygen -t rsa
Lui donner un nom particulier (par exemple /root/.ssh/id_rsa_backup) car elle n’a pas de passphrase et il faudra donc en limiter l’usage.
Ajouter cette clé publique à /root/.ssh/authorized_keys :
no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAA...
Mettre cette clé (privée+publique) à disposition des autres machines.
Sur la machine à sauvegarder (bast) :
Installer les deux outils :
sudo apt-get install rdiff-backup backupninja
Recopier la clé privée spéciale de miaou/root dans /root et changer ses droits :
scp miaou:/root/.ssh/id_rsa_backup.\* /root/.ssh chmod 600 /root/.ssh/id_rsa_backup*
Configurer /etc/backupninja.conf notamment pour définir l’heure des sauvegardes automatiques (afin que toutes n’aient pas lieu en même temps).
Définir quoi sauvegarder
Il suffit de placer des fichiers dans /etc/backup.d/ en les nommant XXun_nom.suffixe où :
- XX est un nombre : le plus grand est exécuté en dernier
- un_nom : ce que vous voulez qui va décrire la tâche. Rien du tout si vous voulez.
- suffixe détermine la tâche à effectuer. Ces suffixes sont prédéfinis (.pgsql .mysql .rdiff etc).
Il faut au minimum mettre un .rdiff en dernier. Les exemples peuvent être pris depuis :
cp /usr/share/doc/backupninja/examples/example.rdiff /etc/backup.d/90do_the_backup.rdiff
Configurer le fichier en question (dossiers à sauvegarder, source et destination, comptes, mots de passe, etc.)
Tester avec (-n = now, -d = debug) :
backupninja -n -d
Ping : Backupninja | Pearltrees
Ping : Backup avec backupninja et duplicity | GoSane