PRATIQUE OUTILS 
Faire une sauvegarde de son site avec rsync
 
Combiner, rsync, cron et script shell pour parvenir à un système automatisé de sauvegarde des fichiers d'un serveur vers un autre. (06/06/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Nous avons déjà présenté rsync dans le cadre d'une synchronisation de données entre une machine personnelle et un serveur distant (lire notre article du 04/01/06). Le contenu d'un site Web étant tout aussi important que celui de votre machine, nous allons présenter une méthode pour synchroniser automatiquement le contenu d'un serveur Web vers un autre.

Celle-ci n'est pas éloignée de celle déjà présentée dans notre article précédent : chaque serveur Web (l'original et celui se secours) dispose d'une installation de rsync, ainsi qu'une implémentation de SSH (par exemple, OpenSSH) pour s'assurer que la connexion sera sécurisée. Le serveur cible disposera d'un compte personnalisé accessible via SSH, et disposant de droits en écriture sur le dossier visé (donc pas root).

Le serveur d'origine doit ensuite disposer d'un script, ou fichier batch, qui contiendra la commande rsync à lancer pour synchroniser les données distantes avec les données locales. rsync se charge de ne transférer que les différences. Ce script peut prendre la forme suivante :

rsync -rtlvz -e ssh --delete utilisateur@10.0.0.7:/chemin/d/acces/ "/Disque/chemin/d/origine"

Les options de rsync sont nombreuses, à chacun de les adapter selon ses besoins.

En l'état, la sauvegarde reste manuelle, et donc laborieuse. Idéalement, il faudrait automatiser le lancement du script ci-dessus. Cela peut se faire en mettant en place une tâche cron, qui lancerait périodiquement celui-ci. On crée une nouvelle tâche via crontab -e :

0 12 * * * /chemin/d/access/script-backup pour lancer le script à midi tous les jours, ou bien
30 12 * * 1 /chemin/d/access/script-backup pour lancer le script à 12h30 tous les lundi.

On pourra ajouter au fichier du script, avant la commande rsync, un appel à mysqldump (lire notre article du 22/11/04), ou un équivalent, afin de sauvegarder également le contenu de la base de données, pas forcément accessible par fichiers.

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page