jeudi 2 mai 2013

Automatisation de la sauvegarde de clients Windows avec Rsync sous ubuntu

Automatisation des sauvegardes avec rsync


Au cours de ma carrière il m'est souvent arrivé d'avoir besoin d'effectuer des backups des PC utilisateurs en vue d'un formatage ou tout simplement à des fins d'archivage. Le premier réflexe est alors de se procurer un périphérique de  stockage (clé USB ou Disque dure Externe); connecter le périphérique au PC, et sélectionner un par un les éléments (fichiers/répertoires à sauvegarder) .

Cette solution marche et permet de disposez d'une version de secoure de vos fichiers. Mais imaginons que vous ayez 50 ou 20 ou seulement 10  stations à sauvegarder tous  les jours ou toutes les semaines la tache devient plus fastidieuse.  Imaginons maintenant que vous ayez 1 ou 2 serveurs situés sur un site distant à sauvegarder également, vous devez donc  effectuer la navette entre les deux sites;  maintenant la tache devient contraignante. Imaginons en plus que sur certains de vos terminaux,  le volume des données est tel que les sauvegardes n'interviennent que si il y a effectivement changement dans le contenu (sauvegardes incrémentiels). Ici ça  devient quasiment impossible  à gérer manuellement.

Il est possible d'automatiser les opérations de sauvegarde des stations locales et distantes et rsync (Remote Synchronisation) est un outil spécialement conçu pour répondre à ce besoin.

Rsync réalise une sauvegarder automatique et incrémentielle des répertoires ou fichiers désignés.


Le but de cet article est de décrire pas à pas les étapes de la mise en œuvre de Rsync pour la réalisation de sauvegardes incrémentiels. Il reprendra un cas réel qu'il m'a été donné de traiter; il s'agit de l'automatisation de la sauvegarde d'un parc PC sous Windows 7. Les pré-requis pour la mise en œuvre sont:

  • Un serveur de sauvegarde sous Linux
  • Une connexion internet
  • Quelques base en administration système Windows/Linux
  • Un profond dédain pour la méthode "manuelle"
Je me suis largement inspiré d'un très bon article que vous pouvez consulter ici en y ajoutant une petite touche personnelle.

Prêt?? C'est partit!



1- Téléchargement et Installation

Cette installation est testée sur  Ubuntu desktop 12.04 (oui  je sais il y a mieux comme serveur de stockage).



2- Paramétrage

Le paramétrage consiste a "déclarer" les différentes sauvegardes. Pour cela nous devons:

  • Créer un fichier de configuration dans /etc appelé rsyncd.conf

  • Éditez ce fichier tel qu'indiqué plus bas:


username correspond à votre nom d'utilisateur ubuntu.


Il est important de fixer les droits sur ce fichier


/home/username/backup indique le chemin ou seront stockées les sauvegardes. Ce répertoire doit exister et avoir les droits d'accès adéquats sinon l'exécution échouera.

#sudo mkdir /home/username/backup
#sudo chmod -R 755 /home/username/backup
  •  Créer et éditer le fichier de mots de passe: /etc/rsyncd.secrets

password correspond au mot de passe de l'utilisateur username

et bien entendu fixer les droits:


  • Activer rsync en editant /etc/default/rsync

  

  • Démarrer le service


Et voilà côté serveur vous êtes OK. Il est tant de configurer nos clients Windows. Le principe est simple. rsync a une architecture de fonctionnement de type client/serveur. Maintenant que nous avons mis en place le serveur. Nous devons nous occuper des clients Windows.

3- Configuration des clients Windows

  • Télécharger et installer Cygwin

    Cygwin est un outil permettant d'avoir accès a des commandes et applications linux (nano, chmod, chow, etc... ) sur une plateforme Windows. Pour résumer cygwin émule un terminal Linux sur un système Windows. Pourquoi en avons nous besoin? Et bien pour faire fonctionner le client rsync!  Lors de l'installation 2 éléments doivent être impérativement sélectionnés:
    Editors > nano
    et
    Net > rsync

    • Variable d'environnement 

      Il est nécessaire de créer un variable d'environnement et la positionner dans le dossier /bin du répertoire d'installation de cygwin


    • Fichier de mot de passe: secret

    Pour des besoin de codage ce fichier doit être créer à l'aide d'un éditeur approprié utilisez pour cela la console cygwin (cygwin.bat) pour lancer l'éditeur nano: nano /secret


    Éditez ce fichier avec le mot de passe utilisé dans /etc/rsyncd.secrets (le mot de passe uniquement). Les droits sur ce fichier doivent appartenir à l'administrateur.

    4- Automatisation de la sauvegarde

    Automatiser la sauvegarde d'un terminal Windows consiste à démarrer à intervalle régulier un script de sauvegarde. La première étape consistera donc à créer un script que nous nommerons rsync.bat

    Ce Fichier contient le code suivant:

     C:\cygwin\bin\rsync.exe -qrtz --password-file=/cygdrive/c/cygwin/secret --delete "/cygdrive/c/Documents and Settings/User Name" username@ipaddress::usernamebackup



    user Name= utilisateur windows
    username= utilisateur Linux
    ipaddress= adresse ip du serveur de sauvegarde

    Sauvegardez ce fichier à la racine C:/

    Enfin il ne reste plus qu'à mettre en place son exécution automatique.

    Démarrer>Tous les programmes>Accessoires>Outils Systeme>Plannificateur de tâches

      




    5- Test

    Maintenant on peut effectuer un test de sauvegarde pour cela on rajoute la ligne suivante au fichier rsync.bat:
    pause  
  •  
    Ensuite on exécute le script. A la fin de l’exécution vous devriez retrouver sur votre serveur de sauvegarde le contenu de votre dossier:
c:/Documents and Settings/User Name

6- Conclusion

C'est tout pour la mise en place des sauvegardes automatiques avec rsync.

Mon opinion est que rsync est une solution efficace et facile à déployer. De plus le fait de pouvoir effectuer des sauvegardes distantes via ssh en fait une solution sûre pour la sauvegarde de données sensibles. Seul inconvénient de cette méthode à mon avis est le fait de devoir installer cygwin sure chacun des postes clients. Des implémentations rsync compatibles Windows existent telles que Delta Copy, ou cwRsync. J’espère vous les présenter dans un prochain post. En attendant amusez vous bien avec rsync et n'hésitez pas a partager votre expérience.

Aucun commentaire:

Enregistrer un commentaire