Copie des données serveurs avec l’outil robocopy

Robocopy (ou Robust File Copy) est un utilitaire en ligne de commande permettant de faire de la réplication de dossiers et fichiers. Cet utilitaire a été introduit dans le « Resource Kit » de Windows Server 2003 et est intégré par défaut à Windows depuis Windows Server 2008 et Windows Vista, il est présent sur toute les versions suivantes que ce soit les versions poste de travail (Windows 7, 8, 8.1 et 10) ou les versions serveur (Windows Server 2008 R2, 2012, 2012 R2). Il est ainsi totalement GRATUIT.

Il permet de copier un répertoire récursivement comme xcopy, mais il présente plusieurs avantages supplémentaires:

  • Il permet une reprise de copie en cas d’erreur
  • Il permet une copie différentiel évitant de copier des fichiers déjà copiés
  • Il affiche la progression de la copie
  • Il copie des fichiers et des répertoires de plus de 256 caractères (limite 32000)
  • Il peut être utilisé en mode batch car il renvoit un code retour.
  • Il offre un mode mirroir qui permet de synchroniser deux répertoires
  • Il est multithread dans les dernières versions.

Il est disponible en ligne de commande mais comme je ne me rappel pas souvent des différents options, je préfère utiliser l’interface graphique à télécharger ici 

 

Si vous voulez faire manuellement votre robocopy dans une commande cmd, La syntaxe permettant de copier les fichiers et dossiers d’un emplacement source vers un autre emplacement est la suivante :

robocopy <Source_folder> <Destination> [fichier_a_copier] [options]

Exemple :

robocopy "C:\Scanner" "\\srv-data\Scanner" /E /COPYALL /V /NP /R:10 /W:30

 

Voici un rappel de l’ensemble des options

1 – Options de Copie

/s Copie les sous-répertoires.
Notez que cette option exclut les répertoires vides.
/e Copie les sous-répertoires.
Notez que cette option inclut les répertoires vides. section Notes.
/Lev:<n> /z Copie les fichiers en mode redémarrage.
/b Copie les fichiers en mode de sauvegarde.
/ZB Utilise le mode de redémarrage. Si l’accès est refusé, cette option utilise le mode de sauvegarde.
/EFSRAW Copie tous les fichiers cryptés en mode EFS RAW.
/copy:<CopyFlags> Spécifie les propriétés du fichier à copier. Les valeurs valides pour cette option sont les suivantes :

/DCOPY:T

Copie des horodatages des répertoires.
/sec /COPYALL /NoCopy /secfix Corrige la sécurité sur tous les fichiers, même ceux qui sont ignorés.
/TIMFIX Corrige les heures sur tous les fichiers, même ceux qui sont ignorés.
/Purge Supprime les fichiers de destination et les répertoires qui n’existent plus dans la source. section Notes.
/MIR section Notes.
/mov Déplace les fichiers et les supprime de la source une fois qu’ils sont copiés.
/Move Déplace les fichiers et répertoires et les supprime de la source une fois qu’ils sont copiés.
/a+:[RASHCNET] Ajoute les attributs spécifiés pour les fichiers copiés.
/a-:[RASHCNET] Supprime les attributs spécifiés dans les fichiers copiés.
/create Crée une arborescence de répertoires et fichiers de longueur nulle uniquement.
/fat Crée des fichiers de destination uniquement au format FAT soit 8 caractères pour le nom, et 3 pour l’extension.
/256 Désactive la prise en charge des chemins d’accès très longs (plus de 256 caractères).
/mon:<n> /mot:<m> /RH:hhmm-hhmm Spécifie le temps d’exécution lorsque les nouvelles copies peuvent être lancées.
/PF Les contrôles d’exécution sont réalisés sur une base par fichier (et non par passe).
/IPG:n Spécifie l’intervalle de besoins pour libérer de la bande passante sur les lignes lentes.
/SL Copie le lien symbolique plutôt que la cible.

Lorsque vous utilisez l’option de copie /SECFIX , spécifiez le type d’informations de sécurité que vous souhaitez copier également l’une de ces options de copie supplémentaire :

– /COPYALL

– /COPY:O

– /COPY:S

– /COPY:U

– /S

2- Option de sélection de fichier

Option Description
/a /m /IA: [RASHCNETO] Inclut uniquement les fichiers dont les attributs spécifiés sont définies.
/XA: [RASHCNETO] Exclut les fichiers dont les attributs spécifiés sont définis
/xf <nom de fichier> […] Exclut les fichiers qui correspondent aux chemins d’accès ou les noms spécifiés. /XD <Répertoire> […] Exclut les répertoires qui correspondent aux chemins d’accès et les noms spécifiés.
/xct Exclut les fichiers modifiés.
/Xn Exclut les fichiers plus récents.
/xo Exclut les fichiers plus anciens.
/xx Exclut des fichiers et répertoires supplémentaires.
/XL Exclut des répertoires et fichiers individuels.
/is Inclut les mêmes fichiers.
/IT Inclut les fichiers « modifiés ».
/max : <n> /min: <N> /MaxAge : <N> /MINAGE : <N> /MAXLAD : <N> /MINLAD : <N> /XJ Exclut les points de jonction, qui sont normalement inclus par défaut.
/FFT Considère l’horodatage des fichiers en mode FAT (précision de deux secondes).
/DST Compense les différences d’une heure due à l’heure d’été.
/XJD Exclut les points de jonction de répertoires.
/XJF Exclut les points de jonction pour les fichiers.

3 – Options de nouvel essai

/r:<n> Spécifie le nombre de ré-essais si la copie initiale échoue. /w:<n> Spécifie le délai d’attente entre 2 essais, en secondes. /reg Enregistre les valeurs spécifiées dans les options /r et /w comme valeurs par défaut dans le Registre.
/TBD Spécifie que le système attendra que les noms de partage soient définis (retry erreur 67).

 

4 – Option de journalisation

Option Description
/L Spécifie que les fichiers doivent être listés uniquement (et non copiés, supprimés, ou horodatés).
/x Signale tous les fichiers supplémentaires, pas seulement ceux qui sont sélectionnés.
/v Génère la sortie détaillée et affiche tous les fichiers ignorés.
/TS Inclut les horodatages de fichier source dans la sortie.
/ FP Inclut les noms de chemin d’accès complet des fichiers dans la sortie.
/bytes Imprime la taille, en octets.
/NS Spécifie que la taille des fichiers ne doit pas être journalisée.
/NC Spécifie que les classes de fichier ne doivent pas être journalisées.
/NFL Spécifie que les noms de fichiers ne doivent ne pas être journalisés.
/ndl Spécifie que les noms de répertoire ne doivent ne pas être journalisés.
/NP Spécifie que la progression de l’opération de copie (le nombre de fichiers ou répertoires copiés jusqu’ici) n’est pas affichée.
/ETA Affiche l’heure estimée d’arrivée (ETA) des fichiers copiés.
/log:<LogFile> Écrit la sortie de l’état dans le fichier journal (remplace le fichier journal existant).
/log+ : <LogFile> Écrit la sortie de l’état dans le fichier journal (ajoute la sortie au fichier journal existant).
/ Unicode Affiche la sortie de l’état au format texte Unicode.
/UNILOG : <LogFile> Écrit l’état dans le fichier journal de sortie en tant que texte Unicode (remplace le fichier journal existant).
/UNILOG+ : <LogFile> Écrit l’état dans le fichier journal de sortie en tant que texte Unicode (ajoute la sortie au fichier journal existant).
/tee Écrit la sortie de l’état dans la fenêtre de console, ainsi que dans le fichier journal.
/NJH Spécifie qu’il n’y a aucun en-tête de tâche.
/NJS Spécifie qu’il n’y a aucun résumé de tâche.