Aller sur skilly.com

Testez vos compétences et prouvez votre niveau d'expertise

L'œil de Skilly

Toutes les nouveautés High Tech pour les développeurs !

  • Actualités
  • Gourous du Code
  • Événements
  • Just for Fun
  • Quelques Chiffres

De l’importance de l’encre

0
  • par Sonny Alves Dias
  • dans Gourous du Code
  • — 23 avr, 2014

Ici nous n’allons pas parler d’encre ou d’imprimante mais de sauvegarde. Car qu’est-ce que l’encre si ce n’est la sauvegarde de nos paroles ?

Feather-icon

Le souvenir qui fait encore mal

Je ne sais pas si comme moi vous aimez le jeu vidéo et avez joué à des jeux comme Diablo. J’ai personnellement adoré ce jeu même si à l’époque, j’avoue n’avoir rien compris aux dialogues tout en anglais. Mais je me souviens très bien, j’étais tellement pris par l’atmosphère, les ténèbres, l’action, l’angoisse que je ne pensais pas à sauvegarder ou que très rarement. En même temps, pour sauvegarder c’était assez fastidieux : déjà il fallait trouver un endroit tranquille, pas en pleine bataille entouré d’une cinquantaine de monstre, ensuite il fallait mettre le jeu en pause, choisir Save game, surtout faire très attention de ne pas écraser n’importe quelle sauvegarde et confirmer qu’on voulait bien écraser celle qu’on ne voulait plus (ou en créer une nouvelle). Ce qui fait au total beaucoup de touches pour ce que j’appellerai une fonctionnalité essentielle d’un jeu moderne. Et je me revois désespéré de devoir recommencer deux ou trois heures de jeu un bon nombre de fois, tout ça parce que j’avais pas pris le temps de mettre le jeu en pause, et sauvegarder mon aventure.

Leçon de vie

Bref qu’est-ce que j’ai retenu de tout ça ? Que la sauvegarde c’est essentiel pour avancer ! Et c’est exactement la même chose dans nos vies de programmeur. Tous les jours, nous écrivons des lignes et des lignes de codes, des scripts, de superbe classes qui font le café à la température parfaite, qu’il nous faut absolument sauvegarder ! J’ajouterais aussi qu’il faut qu’elle soit la plus simple possible voir complètement transparente, automatique.

Je pense qu’on est d’accord, n’est-ce pas ? Car on a tous une histoire similaire que ce soit avec les jeux vidéos, un disque dur qui crash avant la fin du rendu du projet à l’université, ou encore la perte de la toute petite clé USB qui était peut être un peu trop petite. On a tous eu ce moment où on s’est bien mordu les doigts.

A noter qu’ici, nous n’allons pas traiter de sauvegarde de partition mais seulement de celle de vos données. Bien évidemment il existe beaucoup de solutions de sauvegarde toute faite gratuite ou payante. Mais je vais vous proposer la solution la plus simple de sauvegarde rapide, pas cher et qui requiert un brin de programmation, ou pas.

Passons à la technique

Qu’est-ce qu’on a besoin ? ou en tout cas, qu’est-ce qu’on veut ? Une copie parfaite (mirroir) de nos dossiers importants vers un dossier de sauvegarde.

Windows

XP

800px-Microsoft_Windows_XP

Pour les malheureux qui utilisent encore Windows XP, la solution que je vous propose tient en deux parties : xcopy, et un script maison en Visual Basic Script.

xcopy /source /destination /E /H /R /Y /I /D

Alors voyons chacun des paramètres en détail :
- E : comme empty, signifie que tous les fichiers et sous-répertoires même vide seront copiés dans la destination,
- H : comme hidden, signifie que même les fichiers cachés et systèmes seront copiés,
- R : comme read-only, signifie que même les fichiers en lecture seule seront remplacés,
- Y : comme yes, signifie que le remplacement de fichier dans la destination se fera sans confirmation,
- I : comme initial, signifie que si la destination n’existe pas, un dossier sera créé automatiquement pour y stocker la copie,
- D : comme date, signifie qu’il ne remplacera que les fichiers mis à jour, en comparant les dates de dernière modifications.

La première fois que vous allez sauvegarder, ça prendra un temps conséquent car tout à copier, mais les fois suivantes seront beaucoup plus rapide, car seulement les fichiers modifiés seront copiés.

Cependant il manque une fonctionnalité à xcopy. Car avec le temps, on supprime, on déplace des fichiers, on renomme. Mais tout ces changements ne seront pas appliqués au dossier destination. Par exemple, vous avez sauvegardé votre dossier de photo de vacances, et vous avez décidé de faire le tri et de les classer dans différents dossiers pour chaque bar… ville visitée, dans votre dossier de sauvegarde, vous allez vous retrouvez avec toujours vos photos à la racine en plus de la nouvelle copie dans les dossiers bien rangée. C’est pourquoi nous avons besoin de la deuxième partie qui suit.


Function VerifMiroir( repSource, repDest )

    Dim oFSO, oFl, oFld
    Set oFSO = CreateObject("Scripting.FileSystemObject")

    ' Si le répertoire source et destination existent
    If (oFSO.FolderExists(repSource) and oFSO.FolderExists(repDest)) Then

        ' Pour chaque sous-répertoire de destination
        For each oFld in oFSO.GetFolder(repDest).SubFolders

            ' Si le répertoire existe dans source, alors on fait une récursion sur ce répertoire
            If oFSO.FolderExists( (repSource & "\" & oFld.Name) ) Then
                VerifMiroir (repSource & "\" & oFld.Name), oFld

            ' Sinon on le supprime, car il n'existe plus dans la source
            Else
                Wscript.Echo oFld
                oFld.Delete True
            End If

        Next

        ' Pour chaque fichier dans destination
        For each oFl in oFSO.GetFolder(repDest).Files

            ' Si le fichier n'existe pas dans source alors on le supprime
            If not oFSO.FileExists( (repSource & "\" & oFl.Name) ) Then
                Wscript.Echo oFl
                oFl.Delete True
            End If

        Next

    End If
End Function

Cette fonction en VBS s’appelle de cette manière :

VerifMiroir /source /destination

Et si vous mettez le tout dans un même fichier appelé miroir par exemple, vous pourrez l’exécuter de cette manière :

cscript miroir.vbs

Et voilà, une fois c’est deux exécutés, vous devriez avoir une copie parfaite de votre dossier source.

Vista, 7 et 8

799px-Windows_Vista      276px-Microsoft_Windows_7_wordmark.svg      Windows_8_logo_and_wordmark.svg

Sur ces systèmes cités, nous avons la chance d’avoir un outil formidable qui s’appelle robocopy, qui remplace les deux scripts précédents.

robocopy /source /destination /MIR

L’option MIR, comme mirror, remplace tout simplement la fonction en VBS, et permet d’avoir une copie miroir de votre dossier source très facilement. Et c’est tout !

Mac et Linux

OS_X_Logo       500px-NewTux.svg

rsync, est en quelque sorte un équivalent de robocopy.

rsync -a --progress --delete /source /destination

Ici l’option a, comme archive, est un équivalent de l’ensemble des options utilisées avec xcopy, et permet d’inclure dans la sauvegarde les sous-répertoire de source, les liens symbolique, etc. L’option delete est un équivalent du MIR, et a pour effet de supprimer les fichiers ou dossiers dans destination qui ne sont plus dans la source.

Et voilà le tour est joué ;) J’ajouterai que robocopy et rsync sont aussi capables de faire des copies à travers le réseau et font des mise à jours différentielles. Par exemple vous êtes en train de monter une video HD pour votre chaîne Youtube, vous en faites une première sauvegarde puis après vous retravaillez la vidéo en ajoutant dix minutes de plus, ce seront seulement les données de ces 10 nouvelles minutes qui seront envoyés lors de votre prochaine sauvegarde. Vous faisant gagner un temps très précieux !

Astuces

Pour terminer, quelques astuces que j’utilise personnellement lorsque je travaille pour sauvegarder mes projets et mes données très sensibles :

  • Si vous utilisez SVN en local, j’imagine que vous connaissez aussi Dropbox, Google drive ou encore One drive, et bien ce sont aussi de très bonnes solutions de sauvegarde SVN. Couplé avec Tortoise SVN sur Windows, qui a la fonctionnalité de pouvoir créer un repository sur votre disque dur directement, cela devient très simple et très efficace pour faire du versionning en local, tout en ayant une sauvegarde. Ceci seulement en mettez votre repository dans votre dossier dropbox (ou autre) et vous aurez du versionning (grâce à Tortoise) et une backup, qui plus est que vous pourrez partager avec d’autres et accéder de partout. (Notez bien que cette solution n’est pas adapté pour du travail collaboratif !)
  • Nous avons tous sur notre disque dur des données sensibles : photocopie de carte d’identité, de diplôme, RIB ou autre. L’outil TrueCrypt (multi-plateformes) vous permet de stocker toutes ces données dans une partition virtuelle crypté, qui n’est qu’un fichier sur votre disque dur. Vous pouvez crypter avec un ou plusieurs mot de passe, voir aussi un fichier ! J’ajouterais, dans la même philosophie que précédemment, qu’il vous suffit de stocker le fichier qui contient vos données cryptées sur votre cloud et c’est gagné ! Données cryptées et sauvegardées.

Voilà, je vous invite à participer et à poster vos propres astuces aussi en commentaires, que j’hésiterais pas à ajouter dans cet article.

Share

Tags: Sauvegarde

Articles liés

  • AngularJS Angular JS : le framework Javascript par Google
  • oscurification Conception d’une bibliothèque réentrant en C – Obscurification
  • Reconnaissance faciale PHP Reconnaissance faciale en full PHP (+librairie GD)
  • hibernate search Hibernate Search

Laisser un commentaire Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Article précédent Challenge Drupal – Un chèque cadeau à gagner !
  • Article suivant Challenge Spring – Une mallette de poker à gagner !
    • Derniers Articles
    • Articles populaires
    • Tags
    • Challenge Node js Fb coverChallenge Node.js – Un chèque cadeau à gagner !20 octobre 2014
    • nodejs-logoNode.js disponible sur Skilly !15 octobre 2014
    • Challenge Ruby On Rails Fb coverChallenge Ruby On Rails – Un chèque cadeau à gagner !6 octobre 2014
    • CSS Week - Challenge de la semaine 15/07C’est la CSS Week !15 juillet 2013
    • CLI : PHP en ligne de commande5 février 2014
    • Reconnaissance faciale PHPReconnaissance faciale en full PHP (+librairie GD)23 juillet 2013
    • 1anDeTests Android Anniversaire ASP.NET C# Challenge Challenges compétence C Sharp CSS Dataviz Drupal Hibernate HTML5 infographie java jQuery linux MongoDB Monster Monster Race Moteur MySQL My SQL Node.js Objective-C PHP recherche Ruby On Rails Sauvegarde Scrum Search Skilly Spring Titanium Windows Server Wordpress
  • Pas encore fan ?

  • Catégories

    • Actualités
    • C
    • Challenges
    • Conférences
    • Événements
    • Gourous du Code
    • Hackathons
    • Hibernate
    • Javascript
    • Just for Fun
    • PHP
    • Quelques Chiffres
    • Skilly Inside
    • Tests de compétences
  • Activité récente

    • Marc dans Utilisation de variables très locales en C
    • Rafflin dans CLI : PHP en ligne de commande
    • Emma dans CLI : PHP en ligne de commande
    • Bernie_liege dans Reconnaissance faciale en full PHP (+librairie GD)
    • Geeko dans C’est la CSS Week !
  • Skilly est un site dédié aux professionnels de l’informatique, qui permet une auto-évaluation objective de son niveau sur une vingtaine de technologies IT.
  • Home
  • Gourous du Code
  • De l’importance de l’encre
  • Articles récents

    • Challenge Node.js – Un chèque cadeau à gagner !
    • Node.js disponible sur Skilly !
    • Challenge Ruby On Rails – Un chèque cadeau à gagner !
    • Ruby On Rails disponible sur Skilly !
    • Challenge MySQL – Un chèque cadeau à gagner !
  • Allez viens on est bien !

  • Twitter
    Skilly
    Skilly
    @SkillyFR

    @shafan_dev Bonjour Pierre, nous sommes toujours là :) Vous avez constaté un problème sur le site ? Je vous propose d'en parler en DM.

    Répondre Retweeter Favori
    9 h 18 min · 21 avril 2015
    Twitter
    Clever Institut
    Clever Institut
    @CleverInstitut

    Testez vos compétences GIT sur @SkillyFR et participez à notre prochaine formation du 29 et 30 janvier chez @CleverAge

    Répondre Retweeter Favori
    17 h 29 min · 19 janvier 2015 · Retweeté par Skilly
    Twitter
    Shmoolki
    Shmoolki
    @Shmoolki

    Dossier : Quand choisir #MySQL ou #NoSQL ? bit.ly/1Bl8baO MErci @SkillyFR

    Répondre Retweeter Favori
    9 h 52 min · 5 janvier 2015 · Retweeté par Skilly
    Twitter
    Skilly
    Skilly
    @SkillyFR

    L'équipe Skilly vous souhaite de très bonnes fêtes de fin d'année ! :) pic.twitter.com/jop1BxK8nw

    Répondre Retweeter Favori
    15 h 22 min · 24 décembre 2014
    Twitter
    Skilly
    Skilly
    @SkillyFR

    Cette semaine, on parle de Skilly dans @debugroomtv ! Regardez l'émission ici : debugroom.fr/debug-room-21-…

    Répondre Retweeter Favori
    17 h 04 min · 23 décembre 2014
  • Recherche

© COPYRIGHT 2013 L'ŒIL DE SKILLY