locked
Utilisation de Robocopy pour sauvegarde sur un NAS... RRS feed

  • Discussion générale

  • Objectif : sauvegarder des répertoires de mon disque dur vers un partage réseau (NAS) qui devra contenir le miroir exact des répertoires sources.

    Outil utilisé : Robocopy (version XP027, inclus avec Windows 7)
    Sources des répertoires : Laptop HP EliteBook 8530w sous Windows 7 Pro 64 bit, Filesystem : NTFS
    Cible des répertoires : NAS Western Digital My Book World Edition II (modèle à 2 disques, lumière blanche, configuré en RAID 1), Filesystem : EXT3


    J'ai fait de nombreux tests, j'ai lu le guide officiel de 35 pages qui date un peu (version XP010), étudié toutes les options (switchs) de Robocopy. Voici mon retour d'expérience, les problèmes que j'ai rencontré et les interrogations qui en découlent...

    Le switch /DCOPY:T permet de conserver la date de modification (colonne "modifié le" de l'explorateur Windows) des dossiers sources dans le répertoire de destination. Si vous omettez ce switch les répertoires dans le dossier de destination prennent la date de modification du moment où les répertoires sont créés dans la destination.

    Le switch /FFT est obligatoire dans le cas où vous traitez des répertoires source/destination sur des volumes ayant des systèmes de fichiers différents (dans mon cas je pars de NTFS pour aller vers mon NAS qui est en EXT3). Si vous omettez ce switch Robocopy considère que les fichiers sont différents entre la source et la destination même s'ils sont strictement identiques en tout point.

    Les switchs /XJ ou encore /SL, permettant d'exclure les points de jonctions et les liens symboliques de fichiers ne me seront pas utiles. En effet, j'indique avec précision chaque chemin avec une ligne pour chaque dossier source / dossier destination. Exemple : Je veux sauvegarder "Mes Images" et "Téléchargements". Ma premiere ligne indique "C:\Users\%username%\Pictures" et ma seconde "C:\Users\%username%\Downloads". Si je voulais sauvegarder ces répertoires en sauvegardant directement leur répertoire parent "C:\Users\%username%" le switch /XJ me serait alors utile car ce dossier est pourvu de points de jonction.

    Le switch /EFSRAW ne me sera pas utile car je n'ai pas de fichier encrypté.

    Le switch /X me pose problème. Je n'arrive pas à reproduire une situation où je vois la différence dans le log que j'utilise ou non ce switch.
    "/X signale tous les fichiers supplémentaires et pas uniquement ceux sélectionnés." Si quelqu'un peut m'éclairer en me donnant un cas concret je suis preneur !

    Mon 1er script était : robocopy "C:\source" "\\ip_address\target" /MIR /DCOPY:T /FFT /V /NP /LOG+:"C:\LOG.txt" /R:5 /W:12

    Les switchs /V /NP /LOG+ sont justes utiles pour le log. En parlant du log justement...j'avais un problème d'affichage des caractères accentués, réglé avec la commande chcp 1252 exécutée avant de lancer robocopy et qui permet de changer la page de codes actives (par défaut j'étais en chcp 850). En faisant ça plus de souci tout s'affiche nickel dans le log !

    J'ai aussi testé le switch /MT (uniquement dispo avec Windows 7 et Windows Server 2008 R2) permettant de faire des copies en multi-thread mais le fait d'introduire cette commande désactive le switch /NP (du coup, le log affiche le pourcentage de progression) et désactive également des éléments d'informations utiles dans le "job summary" (le résumé du log affiché tout en bas). Ce bug n'a visiblement jamais été corrigé donc je n'utiliserai pas ce switch.

    Par défaut, Robocopy fonctionne en mode /COPY:DAT c'est à dire que les infos de sécurité NTFS ne sont pas recopiées dans le répertoire de destination. Pour cela on peut prévoir de rajouter /COPYALL (toutes les infos NTFS sont recopiées, équivalent à /COPY:DATSOU) ou bien rajouter seulement les infos de sécurité ACL NTFS (switch /SEC, équivalent à /COPY:DATS). Concernant le mode par défaut /COPY:DAT j'ai pu remarqué que dans mon cas le "A" était ignoré, revenant à /COPY:DT puisque lorsque je regarde mon dossier de destination j'ai l'attribut "N" pour tous les fichiers et "D" pour tous les dossiers alors que du côté de mon répertoire source j'ai des fichiers en lecture seule, archive, etc. Pour tester, j'ai fait un simple copier/coller d'un fichier du répertoire de destination (sur le NAS donc) vers C:\ et là j'ai chaque fichier en attribut Archive. A quoi correspondent "N" pour les fichiers et "D" pour les dossiers en tant qu'attributs côté répertoire de destination ? Est ce lié au fait que je pars de NTFS pour aller vers EXT3 ? Est-ce un comportement normal ou un bug ? Vaut-il mieux donc utiliser /COPY:DT au lieu du mode par défaut, /COPY:DAT ?

    Pour les infos de sécurité NTFS, que ce soit /COPY:DATS, ou /COPY:DATSO ou /COPY:DATSOU aucun ne passe et le fait d'introduire le "S", le "O" ou le "U" me retourne un message d'erreur "ERREUR 5 (0x00000005) Copie de la sécurité NTFS dans le répertoire de destination". En relisant la doc de ROBOCOPY (XP010) j'ai pu confirmer ce comportement. On peut y lire le paragraphe suivant : "If either the source or the destination volume is not NTFS, requests to copy security information are ignored. Only one attempt is made to copy NTFS security information for each file or directory copied." Effectivement, en testant avec un répertoire de destination local sur mon laptop pas de souci avec /COPYALL...les répertoires source et cible sont tous les 2 sur des Filesystem NTFS. J'imagine qu'il n'est pas possible de faire autrement et que cela est lié au FileSystem EXT3 ?

    Quand je regarde l'onglet "Sécurité" des fichiers présents sur le NAS je remarque que le groupe "Tout le monde" dispose d'un contrôle total et que deux autres lignes sont présentes : "nobody (Unix User\nobody)" et "jewab (Unix Group\jewab)". Ces deux lignes ayant chacune un accès Lecture + Ecriture. A quoi cela correspond t-il ? Est-ce un bug ou un comportement normal ?

    En comparant les dates dans l'explorateur Windows à l'aide des colonnes "Modifié le" et "Date de création" j'ai pu constater des différences entre la source et la cible. En effet, dans mon répertoire de destination les dates sous la colonne "Modifié le" sont identiques à la source à la fois pour les fichiers et les dossiers (pour les dossiers cela est possible grâce au switch /DCOPY:T). En revanche, sous la colonne "Date de création" aucune date affichée dans mon répertoire de destination ne correspondent à celles de mon répertoire source; que ce soit pour les fichiers ou les dossiers. Au final, j'ai donc mon répertoire de destination sur mon NAS avec les dates sous la colonne "Date de création" identiques à celles sous la colonne "Modifié le" pour les fichiers et les dossiers. Cela est-il normal ? Est-il possible de forcer Robocopy à conserver les bonnes dates pour la colonne "Date de création" ?

     

    Mon script actuel : robocopy "C:\source" "\\ip_address\target" /MIR /COPY:DT /DCOPY:T /FFT /V /NP /LOG+:"C:\LOG.txt" /R:5 /W:12


    Voilà, j'espère que ce "pavé" de texte n'est pas trop indigeste... Pour une meilleure visibilité j'ai mis mes questions en italique, gras, souligné dans les différents paragraphes. Avis aux experts de Robocopy j'ai besoin de vous ! Merci d'avance!

    WaxMax

    vendredi 30 septembre 2011 08:42

Toutes les réponses

  • Bonjour

    Pour garder et préserver tous les attributs, il faut copier sur du NTFS, donc un serveur Windows, votre NAS ne semble pas être sous Windows, d'ou le comportement un peu aléatoire.

     

    J'ai déja eu des problèmes similaires ou robocopy voyait systématiquement tous les fichiers différents et recopiait donc tout à chaque fois..

     

     


    ___________________________________________________________ Laurent Gébeau http://www.toutwindows.com - Twitter : http://twitter.com/mtoo
    jeudi 6 octobre 2011 20:59