Laisser un commentaire

Sauvegardes automatiques avec rsync

Nous sommes tous assez paresseux et la procrastination est bien souvent un domaine dans lequel chacun excelle. C’est pour cette raison que même lorsque nous avons fait la démarche d’acheter un disque dur pour sauvegarder ses documents, en pratique, ces sauvegardes sont tout sauf régulières. Et malheureusement, c’est souvent après un crash d’un disque dur que l’on se pose des questions… Too late! La solution ? L’automatisation !!

Il y a mille et une réponse à cette problématique, dropbox et j’en passe. Mais si nous faisions ça de manière un peu plus manuelle, avec sa propre solution faite maison ?

Ma solution est à base de Linux (ou d’Unix), donc elle marche sur Linux, OSX et freeBSD. Pour ceux qui sont sous Windows, vous n’avez cas franchir le pas, Linux est votre ami ! Ce sera en plus l’occasion de récupérer un vieux PC pour en faire un serveur de sauvegarde.

Comment ça marche ? Très simple, on a d’un côté notre ordinateur de travail, de l’autre un serveur Linux. On utilise donc rsync pour faire une sauvegarde incrémentale, le tout étant lancé par cron à intervalles réguliers. On peut donc choisir l’intervalle de sauvegarde, et l’endroit de cette sauvegarde. En ce qui me concerne, je fais ça chez moi, c’est plus rapide sur le réseau local, mais il est tout à fait possible d’envoyer ça sur un serveur distant.

#!/bin/bash
result=`/sbin/ping -c 1 192.168.0.25 | sed -n '/packets transmitted/p' | cut -d ',' -f 2`;

# selon les versions/distributions le message peut changer
# comme l'indique Cyrille en commentaire,
# il lui a fallu remplacer "1 packets received" par "1 received"
if [ "$result" == " 1 packets received" ]
then
    rsync -arv /Users/Buzut/Documents/ buzut@192.168.0.25:backup --delete
fi

On commence donc par faire un ping à l’adresse de destination. Ici, c’est une ip locale, donc si l’ordinateur sur lequel vous utilisez ce script est un portable, il est possible qu’il y ait une machine à cette adresse sur un autre réseau que chez vous. Cependant, ça limite les tentatives inutiles et c’est 100% fiable si la machine est distante car une ip publique est unique au monde (sauf anycast mais bon…).

Ensuite, si le serveur ping, on synchronise nos dossiers avec ce dernier. Même s’il y a une machine sur un réseau auquel je suis connecté qui n’est pas mon serveur, je ne pourrai pas m’y connecter car mes identifiants ne seront pas valides. Je précise aussi que rsync transfert les données via ssh, donc que tout est chiffré.

Je sauvegarde ici le dossier “Documents” de mon répertoire personnel, mais rien n’empêche de ne sélectionner que quelques dossiers, ou au contraire tout un disque dur !

Dernier petit détail, on utilise ici un certificat ssh, ça nous permet de nous connecter automatiquement au serveur sans avoir à entrer le mot de passe à chaque fois et c’est plus sécurisé que ces derniers.

Et vous, les sauvegardes ça se passe comment ?

Commentaires

Rejoignez la discussion !

Vous pouvez utiliser Markdown pour les liens [ancre de lien](url), la mise en *italique* et en **gras**. Enfin pour le code, vous pouvez utiliser la syntaxe `inline` et la syntaxe bloc

```
ceci est un bloc
de code
```