Sauvegarder un site web avec rsync


Rsync folder
Cet article explique comment faire une sauvegarde de son site web en utilisant la commande rsync. Celle-ci offre de nombreux avantages, comme la possibilité de faire des sauvegardes de type incrémental. Cela signifie que lorsque l'on lance plusieurs fois la sauvegarde, rsync est capable de recopier uniquement les fichiers qui ont changé, ce qui accélère significativement le processus.

Avant de commencer, on prendra le soin de créer un dossier en local qui contiendra tous les fichiers sauvegardés :

mkdir backup

On pourra ensuite lancer la commande rsync en utilisant la syntaxe suivante :

rsync -rave ssh login@mon-serveur.com:/var/www/html backup

Les options utilisées sont les suivantes (-rave comme une rave party, c'est mnémotechnique) :

  • r veut dire récursif. Cela permet de sauvegarder tous les sous-dossiers
  • a permet d'utiliser le mode archive
  • v permet de passer en mode verbose et de voir en direct la liste des fichiers copiés
  • e ssh pour pouvoir se connecter en ssh

Voici un exemple de commande que j'utilise pour Tux-planet :

rsync --exclude=wp-cache* -rave ssh tuxplanet@240plan.ovh.net:~/www.tux-planet.fr/ backup

On notera ici l'utilisation de l'option --exclude qui me permet de ne pas sauvegarder les fichiers de cache de wordpress, car ces derniers ne sont pas importants et en perpétuelle évolution.

Si vous souhaitez automatiser cette procédure et la mettre dans une crontab par exemple, il faudra penser à ajouter votre clé ssh sur le serveur, afin que la demande de mot de passe n'interrompe pas la sauvegarde.


9 Commentaires pour "Sauvegarder un site web avec rsync"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    C'est quoi exactement le mode archive ?

    RépondreRépondre
    Binoyte , le 22 février 2009 à 22:39
  •  

    [propaganda]Pour le souci de la demande de pass quand on s'en sert comme une tache cron, j'ai récemment découvert un outil génial: "expect" qui permet de faire des scripts "interactifs" dans le sens ou il est capable de réagir en fonction des évennements, il est par exemple possible de lui dire d'envoyer le mot de passe lorsqu'une ligne comportant le mot "password" apparait. Alors certes dans ce cas ca oblige à avoir son pass ssh codé en clair dans un script (bouh pas biennnn!!!), donc on va éviter, mais ca m'y a fait penser, c'etait donc l'occasion d'en parler :) [/propaganda]

    RépondreRépondre
    MatToufoutu , le 23 février 2009 à 02:57
  •  

    @Bynonite : Le mode archive permet de conserver l'user, le groupe et les droits sur le fichier.

    RépondreRépondre
    Clément (divarvel) , le 23 février 2009 à 15:07
  •  

    @MatToufoutu : tiens ça me fait penser que ton système de script avec expect et la gestion des mot de passe pourrait me servir pour autre chose. merci de l'info.

    RépondreRépondre
    pti-seb , le 23 février 2009 à 16:25
  •  

    @MatToufoutu expect peut donner en réponse le contenu d'un fichier ou pas ?
    Parce que mettre un mot de passe en clair dans un script, c'est mal, mais le mettre dans un fichier avec des droits restrictifs, ça se fait.

    RépondreRépondre
    Clément (divarvel) , le 23 février 2009 à 16:39
  •  

    @Clément : Aucune idée, faudrait tester, peut être avec un "cat" ou un truc du genre, j'essaierai tien !
    PS: je dois vraiment être un abruti, paske avec moi ça met pas le nom de la personne à qui je répond en gras xD

    RépondreRépondre
    MatToufoutu , le 24 février 2009 à 23:06
  •  

    Dans le même ordre d'idées, j'ai écrit un post décrivant une méthode pratique et facile à mettre en place (à mon avis) pour sauvegarder non pas un site web mes des données de tout genre et de les synchroniser sur Dropbox. Si ca vous intéresse: http://tinyurl.com/cfoteu

    RépondreRépondre
    Valentin , le 27 février 2009 à 10:58
  •  

    Attention, d'après le man, l'option -e ne correspond pas du tout à une connection ssh:
    "-e, --rsh=COMMAND specify the remote shell to use"

    De plus dans "ssh user@machine", le terme ssh n'est pas du tout obligatoire pour une connexion (enfin toujours d'après le man)

    RépondreRépondre
    Orion , le 11 juin 2009 à 10:50
  •  

    Oubliez mon message précédent... me suis mélangé les pinceaux.

    RépondreRépondre
    Orion , le 11 juin 2009 à 11:02
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum