Catégories
Open-source Planet-libre Reseau Systeme

Sauvegarde journalisée de votre machine avec RSnapShot

Suite à un commentaire de Xavier sur un de mes billets, je me suis penché sur l’utilisation de RSnapshot. Ce logiciel libre permet d’automatiser une sauvegarde journalisée de vos machines et ceci localement comme à distance.

RSnapShot est disponible dans la plupart des dépôts des distributions GNU/Linux et *BSD. Nous allons illustrer cet article avec une installation et une configuration de RSnapShot sur un serveur Gandi sous Ubuntu 10.04 LTS.

Installation de RSnapShot

On utilise la version disponible dans les dépôts officiel:

sudo aptitude install rsnapshot

Configuration de RSnapShot

L’ensemble de la configuration est centralisé dans le fichier /etc/rsnapshot.conf.

sudo vi /etc/rsnapshot.conf

Attention à la syntaxe dans ce fichier, RSnapShot est assez pointilleux. Il veut que tout les répertoires finissent par un / et des tabulations entre chaque variables.

Les variables importantes à configurer sont les suivantes:

snapshot_root   /.snapshots/

La variable snapshot_root permet de configurer le répertoire racine ou les sauvegardes seront stockées. Ce répertoire peut être sur le même disque que le disque système (c’est le cas de la configuration par défaut avec l’utilisation du répertoire /.snapshots/).

Je vous conseille pour ma part d’utiliser si possible un répertoire stocké sur un deuxième disque physique. Par exemple sur mon serveur Gandi, j’ai un deuxième disque qui est monté sur le répertoire /srv/backup. Je vais donc configurer la variable à /srv/backup/snapshots/ (noter le / à la fin du répertoire !).

Exemple: snapshot_root /srv/backup/snapshots/

cmd_ssh /path/to/ssh

Si vous voulez utiliser les fonctions de sauvegarde de serveur distant (en utilisant le protocole SSH), il faut dé-commenter la ligne précédente. Si vous avez besoin de passer des arguments spécifique à SSH, il faudra compléter la ligne ssh_args.

Exemple: cmd_ssh /usr/bin/ssh

interval monthly 3

Activation de la sauvegarde mensuelle (désactivé par défaut).

On passe ensuite aux variables permettant de configurer ce que l’on veut sauvegarder.

Sauvegardes locales

On parle ici d’une sauvegarde journalisée de répertoires de la machine ou RSnapShot est installé.

backup /home/ localhost/

Le répertoire /home/ sera sauvegardé dans le sous répertoire $snapshot_root/localhost/.

Exemple:

backup /home/ localhost/

backup /etc/ localhost/

backup /var/svn/ localhost/

Sauvegardes distantes

On peut également sauvegarder des répertoires de machines distantes. On utilise pour cela la configuration suivante:

backup root@example.com:/etc/  example.com/    +rsync_long_args=–bwlimit=1024,exclude=core

On va ainsi sauvegarder le répertoire /etc/ de la machine exemple.com en utilisant une connexion SSH avec l’utilisateur root (il faut bien sur que la connexion SSH entre votre machine exécutant RSnapShot et example.com soit automatisée). En bonus on demande à RSnapShot de ne pas sauvergarder les fichiers core (exclude=core) et de limiter la bande passante à 1 Mbps (–bwlimit=1024).

Sauvegardes en utilisant des scripts

Une autre fonctions intéressantes de RSnapShot est la possibilité d’utiliser des script shell pour automatiser des sauvegardes un peu plus complexes.

Par exemple imaginons que l’on veuillent sauvegarder les données de son serveur SVN. On commence par créer le script shell /usr/local/bin/backup-svn.sh:

#!/bin/sh

# Backup SVN


svnrepo= »/var/svn/ »

for i in `ls $svnrepo`

do

svnadmin -q dump $svnrepo/$i > $i.svndump

gzip -f $i.svndump

rm $i.svndump

done

Puis on le rend exécutable:

sudo chmod a+x  /usr/local/bin/backup-svn.sh

Enfin on configure RSnapShot:

backup_script /usr/local/bin/backup-svn.sh localhost/svn/

Le script backup-svn.sh va être lancé à partir du répertoire localhost/svn/

Il est bien sur possible de faire des scripts pour d’autres besoins: sauvegarde de bases de données MySQL par exemple.

Utilisation de RSnapShot

On commence par valider le fichier de configuration:

sudo rsnapshot configtest

Syntax OK

Simulation d’une sauvegarde journalière (cela va afficher ce que RSnapShot va faire mais sans le faire…):

sudo rsnapshot -t hourly

echo 3531 > /var/run/rsnapshot.pid

mkdir -m 0700 -p /srv/backup/snapshots/

mkdir -m 0755 -p /srv/backup/snapshots/hourly.0/

/usr/bin/rsync -a –delete –numeric-ids –relative –delete-excluded /home \

/srv/backup/snapshots/hourly.0/localhost/

mkdir -m 0755 -p /srv/backup/snapshots/hourly.0/

/usr/bin/rsync -a –delete –numeric-ids –relative –delete-excluded /etc \

/srv/backup/snapshots/hourly.0/localhost/

mkdir -m 0755 -p /srv/backup/snapshots/hourly.0/localhost/

mkdir -m 0755 -p /srv/backup/snapshots/tmp/

cd /srv/backup/snapshots/tmp/

/home/nicolargo/bin/backup-svn.sh

cd /home/nicolargo/

sync_if_different(« /srv/backup/snapshots/tmp/ », \

« /srv/backup/snapshots/hourly.0/localhost/svn/ »)

mkdir -m 0755 -p /srv/backup/snapshots/hourly.0/

/usr/bin/rsync -a –delete –numeric-ids –relative –delete-excluded \

–exclude=core –bwlimit=1024 –rsh=/usr/bin/ssh \

nicolargo@exemple.com:/home /srv/backup/snapshots/hourly.0/sam/

mkdir -m 0755 -p /srv/backup/snapshots/hourly.0/

/usr/bin/rsync -a –delete –numeric-ids –relative –delete-excluded \

–exclude=core –bwlimit=1024 –rsh=/usr/bin/ssh \

nicolargo@exemple.com:/etc /srv/backup/snapshots/hourly.0/sam/

touch /srv/backup/snapshots/hourly.0/

Test en ligne de commande:

sudo rsnapshot hourly

Le répertoire contenant la première sauvegarde devrait être créé sous /srv/backup/snapshots/hourly.0.

Enfin on automatise le lancement en éditant la crontab système (root):

sudo crontab -e -u root

0 */4 * * * /usr/bin/rsnapshot hourly

30 23 * * * /usr/bin/rsnapshot daily

0 23 * * 0 /usr/bin/rsnapshot weekly

30 22 28 * * /usr/bin/rsnapshot monthly

Pour une liste exhaustive des fonctions proposées par RSnapShot, je vous conseille la lecture de la documentation officielle (en Anglais).

Et voili, merci encore à Xavier pour cette belle découverte.

Catégories
Open-source Reseau

SpiderOAK en ligne de commande

Vous savez (ou pas) tout le bien que je pense du service de stockage en ligne SpiderOAK. Après avoir détailler l’installer et la configuration du logiciel client SpiderOAK sur un PC Ubuntu Desktop disposant d’une interface graphique, nous allons voir comment utiliser ce service sur un serveur seulement accessible en ligne de commande (SSH).

Principe

En effet, le client SpiderOAK peut être lancé en ligne de commande (vous pouvez voir la liste des options disponibles en lancant /usr/bin/SpiderOak –help). Malheureusement, il n’est, à l’heure actuelle, pas possible de configurer le client par cette méthode. Nous allons donc:

  • installer le client SpiderOAK sur le serveur
  • en utilisant les fonctions x-forwarding de SSH, lancer le client à distance (l’interface s’affichera sur  votre machine locale) puis faire la configuration (c’est à dire choisir les répertoires à sauvegarder)
  • automatiser le lancement du client en ligne de commande (via crontab)

Aller zou à vos claviers…

Installation du client SpiderOak sur le serveur

On commence par télécharger la dernière version du client (attention de choisir une version compatible avec votre serveur: AMD64 / i386…) sur sa machien locale (on doit obtenir un fichier nommé spideroak_9658_i386.deb ou quelque chose comme ça…).

On copie ensuite ce fichier vers le serveur:

[shell]scp spideroak_9658_i386.deb monlogin@monserveur.com[/shell]

On se connecte en SSH sur le serveur:

[shell]ssh login@monbeauserveur.com[/shell]

Puis on lance l’installation:

[shell]sudo dpkg -i spideroak_9658_i386.deb[/shell]

Avant de fermer la session SSH, on installe xauth qui va nous permettre de lancer SSH en mode x-forwarding (exemple d’installation sur une distribution Ubuntu Serveur) ainsi que quelques librairies dépendantes:

[shell]

sudo aptitude install xauth dbus libice6 libsm6 libxrender1

exit

[/shell]

Configuration du client à distance

On lance une nouvelle session SSH en activant le x-forwarding (option -X):

[shell]ssh -X login@monbeauserveur.com[/shell]

Puis on lance le client SpiderOak:

[shell]/usr/bin/SpiderOak[/shell]

Il ne reste plus qu’a choisir dans l’interface graphique les répertoires à sauvegarder (voir un screencast de démonstration ici).

Une fois le client configuré, vous pouvez fermer l’application.

Lancement du client sur le serveur

Pour lancer le client sans interface graphique, il suffit de saisir la commande suivante (dans votre session SSH):

[shell]/usr/bin/SpiderOak –headless &[/shell]

Enfin pour automatiser le lancement du client au démarrage du serveur, il suffit d’ajouter une ligne à votre crontab:

[shell]

# crontab -e

@reboot /usr/bin/SpiderOak –headless &

[/shell]

Si vous avez besoin de reconfigurer votre client (pour ajouter ou supprimer un répertoire à sauvegarder), il faut:

  • se connecter au serveur en SSH avec l’option -X
  • tuer le process SpiderOak existant
  • lancer la commande: /usr/bin/SpiderOak
  • Configurer puis quitter l’interface
  • lancer la commande: /usr/bin/SpiderOak –headless &

Voili, plus d’excuses pour perde ses données 🙂

Source: Le blog de Marc Seeger

Catégories
Reseau Web

Partager ses fichiers entre Linux, Mac, Windows, iPhone et Android

Je vais vous parler d’un service en ligne que beaucoup d’entre vous doivent connaitre et utiliser: Dropbox. Il permet de maintenir synchroniser un répertoire de votre disque dur entre plusieurs ordinateurs et ceci quelques soient leurs systèmes d’exploitations: GNU/Linux, Mac OS X, IPhone/Ipad, Android ou Windows (et bientôt Blackberry).

J’ai réalisé que c’était une des premières applications que j’installais sur mes nouvelles machines (le logiciel est intégré dans mon script de post installation Ubuntu). Après seulement 1 an d’utilisation, Dropbox est devenu avec Gmail et Google Reader un service en ligne dont j’aurai le plus grand mal de me séparer…

Installation de Dropbox

C’est simple, il faut d’abord créer gratuitement un compte qui vous donne droit à un espace de stockage de 2 Go (qu’il est ensuite possible d’augmenter moyenant finance, là est leur business model).  Ensuite lors de l’installation du logiciel Dropbox sur votre ordinateur, ce compte (login et password) vous sera demandé ainsi que le répertoire (que l’on appellera « la dropbox ») de votre disque dur à synchroniser (par défaut~/Dropbox).

Comment marche Dropbox ?

A partir de ce moment, tous les fichiers/répertoires de « la dropbox » seront synchronisés sur un serveur en ligne. On a donc dans un premier temps une simple fonction de sauvegarde de vos données (ce qui n’est déjà pas si mal).C’est en installant le logiciel Dropbox sur une deuxième machine que l’on bénéficie de la puissance de ce service.

En effet, toutes les données seront synchronisées par rapport au serveur. On se retrouve donc avec la même « dropbox » sur les deux machines. Il n’y a pas de limite au nombre de machines que l’on peut synchroniser.

Il est également possible de consulter et d’ajouter des fichier de votre Dropbox en ligne (via un simple navigateur Web).

Les +/- de Dropbox

Les + :

  • Grande simplicité d’installation
  • Utilisation transparente (on y pense plus et on a les données sur toutes ses machines…)
  • Espace de stockage de 2 Go gratuit sur le serveur
  • La fonction « Sync LAN » (active par défaut) permet de faire la synchronisation directement entre vos machines si elles sont connectées au même réseau local.
  • Possibilité de partager un répertoire avec d’autres personnes.

Les :

  • Le logiciel Dropbox n’est pas distribué sous licence « libre »
  • Vos données sont stockées sur un serveur, donc attention aux données sensibles/personnelles (rien ne vous empêche de chiffrer ces données).
  • L’offre payante est un chère à mon goût (environ 100€/an pour 50 Go, 200€/an pour 100 Go)
  • Pas d’assurance que le service de base restera gratuit… mais on a le même problème avec GMail ou Ubuntu One…

Pour vous inscrire et tester Dropbox, suivre ce lien !

Catégories
Reseau Systeme Web

2 Go pour la sauvegarde de vos données

Je viens de découvrir ce service en lisant un blog us. Mozy offre gratuitement (sans limite, sans vous demandez votre numèro de carte bleu, vous savez au cas ou…) un service de stockage de fichiers en ligne optimisé pour Windows et Mac.

Pour profiter de ce service, il faut s’enregistrer sur le site (on vous demande simplement une adresse email valide) et télécharger le logiciel Mozy.

Une fois installé, il faut le configurer pour choisir quels fichiers doivent être archivés sur le disque réseau de 2 Go.

       

La première sauvegarde risque d’être longue, par contre les sauvegardes suivantes se font de manière incrémentale. Vous pouvez modifier vos paramètres à tout moment en accédant au logiciel qui vient se loger dans la barre de menu.

Pour information, les données chiffrés avant d’être envoyées (clés de 128 bits) et chiffrés sur le serveur (clés de 448 bits). En plus c’est gratuit donc pourquoi ne pas en profiter…

Catégories
Blog

Sauvegarde automatique de votre base de donnée WordPress

Après la lecture d’un article d’un bloggeur ayant perdu du jour au lendemain une partie de son blog après une corruption de sa base de donnée, je me suis lancé à la recherche d’un plugin permettant de sauvegarder automatiquement la base de donnée de WordPress.

Cette fonctionnalitée était incluse dans WordPress jusqu’a la version 2.0. A partir de la version 2.1 et pour de sombres raisons de désaccord entre l’auteur de ce système de sauvegarde et les développeurs de WordPress, il faut maintenant télécharger un plugin externe.

Pour cela, il faut donc d’abord se rendre à l’adresse suivante pour télécharger le plugin. L’installation et l’activation se fait comme pour tout plugin WordPress:

Il faut ensuite créer un répertoire en écriture sur le serveur afin que le plugin puisse fonctionner (sous wp-content/backup-xxx).

Pour la sauvegarde de votre base de donnée, trois options sont possibles:

  • une sauvegarde en local, sur votre PC
  • une sauvegarde sur le serveur ou est hébérgé WordPress
  • une sauvegarde envoyée par email

Disposant d’un compte Gmail avec une taille de stockage assez importante, j’ai opté pour cette troisième solution.

Par défaut, le plugin ne sauve « que » les tables principales mais n’inclus pas les tables créées par d’autres plugins (comme les tags par exemple), à vous donc de les ajouter via le menu de configuration.

La dernière option et non des moindres permet d’automatiser cette sauvegarde (par exemple toutes les semaines, ou toutes les heures si vous êtes un gros, très gros bloggeur).

Bref un plugin de plus dont on espère ne jamais avoir à se servir 😉