• Script de sauvegarde avec Rsync

    Ce tutoriel est l'un de mes 4 projets Linux que j'ai préparé pour mon oral de BTS.

    Jusqu'à maintenant j’effectuais mes sauvegardes de manière manuelle par l’intermédiaire d’un copier/coller sur des partages SAMBA.

    Télécharger « script_sauvegarde_rsync »

    L’inconvénient de ce type de sauvegarde est que cela m’obligeait à penser à effectuer des sauvegardes et à effectuer à chaque fois une sauvegarde complète qui prenait en compte les données récentes, anciennes, modifiées ou non et évidemment cela prenait beaucoup de temps.

    J'ai alors pensé que la mise en place d’une sauvegarde automatisée qui ne sauvegarderait que les données créés ou modifiés depuis la dernière sauvegarde serait une bonne solution.

    La mise en place d’un script bash de sauvegarde avec rsync qui serait lancé de manière automatisée via un planificateur de tâches me permettrait de résoudre ce problème.

     

    Script de sauvegarde avec Rsync

     

    Rsync (pour remote synchronisation ou synchronisation à distance) est un logiciel libre de synchronisation de fichiers en ligne de commande qui fonctionne de manière unidirectionnelle.


    Il copie les fichiers d’un endroit vers un autre en synchronisant en fonction de la source (il fait une comparaison simple des fichiers entre source et hôte et ne prend pas en compte les modifications sur l’hôte mais uniquement celle de la source).


    Lors de la première sauvegarde,rsync va effectuer une sauvegarde complète, ensuite il fonctionne par copie partielle des données appelée sauvegarde incrémentielle qui ne sauvegarde que ce qui a changé depuis la dernière sauvegarde (nouveautées ou modifications).


    Rsync permet de passer par le protocole SSH afin d'effectuer des sauvegardes par le réseau d'une machine à une autre de manière à sécuriser les données transmises.


    Enfin rsync fonctionne aussi bien sur Linux, Windows et Mac OS X.

    Fonctionnement du script

    Le script se lance tous les jours à 23h30 via une tâche cron.

     

    Script de sauvegarde avec Rsync

      (cliquer sur l'image pour l'agrandir) 

     

    Après chaque sauvegarde, j'ai demandé à mon script de générer un fichier de logs afin de conserver une trace de mes sauvegardes.

    On peut également voir les statistiques (nombre de fichiers transférés, taille totale…)

    ici, j'ai transféré 403 fichiers.

    A la fin du fichier de logs, j'obtiens le code de retour de la sauvegarde (case $status in avec les codes d'erreurs du script ), codes que j'ai trouvé ici : rsync exit codes

     

     

    Script de sauvegarde avec Rsync

      (cliquer sur l'image pour l'agrandir) 

     

    Lors de ma sauvegarde du lendemain, je vois que rsync a trouvé 10 fichiers nouveaux ou modifiés par rapport à la sauvegarde de la veille et qu’il n’a transféré que ceux-ci.

    La sauvegarde incrémentale a donc bien fonctionné.    

     

    Script de sauvegarde avec Rsync

      (cliquer sur l'image pour l'agrandir) 

     

    Si le code de retour de la sauvegarde n'est pas égal à 0 (succès), vous aurez le message d'erreur correspondant au code de retour. 

     

    Script de sauvegarde avec Rsync

      (cliquer sur l'image pour l'agrandir) 

     

    Conclusion :

    Grâce à ce script automatisé, je n'ai plus à effectuer mes sauvegardes manuellement et je n'ai plus à effectuer de sauvegardes complètes à chaque fois.

    N'hésitez pas à adapter le script selon vos besoins...

    « Les épreuves du BTS approchent...Mises à jour avec script Bash et Zenity »

    Tags Tags : , , , ,
  • Commentaires

    1
    rafael
    Vendredi 29 Août 2014 à 15:32

    Je suis tombé sur votre blog lorsque je cherchais un script de sauvegarde via rsync...j'avais testé plusieurs scripts, mais le fait que vous ayez intégré les codes de retour de rsync au votre m'a paru être une très bonne chose, si bien que je l'ai installé sur 2 PC à la maison....


    Félicitations pour tous vos articles que je continuerai à suivre bien évidemment.


    j'espère que vous trouverez une entreprise pour votre licence, car vouloir aller aussi loin dans une reconversion professionnelle demande une réelle motivation....


    Cordialement


                                                                                              


     


     

    2
    Vendredi 29 Août 2014 à 22:01

    Bonsoir rafael...

    Avant d'écrire mon script, j'avais également testé plusieurs scripts et aucun ne proposait de codes de retour,ce qui ne me donnait aucune certitude sur mes sauvegardes et c'est pour cela que je les ai intégré à mon script...

    Quand à ma motivation, je peux la résumer à ce proverbe chinois :

    " La volonté permet de grimper sur les cimes; sans volonté on reste au pied de la montagne "

    Cordialement

    3
    thomassachy
    Mardi 24 Janvier à 10:55

    bonjour, j'ai repris votre script mais quand je le lance il ne reconnait pas la fonction case, pourriez vous maider ?

     

    voici le message derreur que j'ai :

     

    C:\Cygwin>C:\Cygwin\bin\bash.exe --login -i '/cygdrive/c/Cygwin/sauvegarde.sh'

    bash: status : commande introuvable

    bash: /cygdrive/c/Cygwin/sauvegarde.sh: ligne 24: erreur de syntaxe près du symbole inattendu « $'in\r' »

    'ash: /cygdrive/c/Cygwin/sauvegarde.sh: ligne 24: `case $status in

     

    4
    Mardi 24 Janvier à 12:09

    Bonjour

    Sous quel système d'exploitation exécutez vous le script?

    5
    Mercredi 26 Juillet à 08:46
    Hunterbaba

    Bonjour,

    Je suis tomber sur votre page web car je chercher un script mais malheureusement il n'est plus téléchargeable et pour t'en il a l'air fort intéressant .

    6
    Mercredi 26 Juillet à 10:29

    Quel script cherches tu Hunterbaba ?

     
      • Mercredi 26 Juillet à 14:11

        Le lien pour voir ton script ne fonctionner pas ce matin mais la j'y est accès Merci

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :