Robocopy

Copie de fichiers robuste pour Windows
http://en.wikipedia.org/wiki/Robocopy
http://mclaveau.com/gvrac/robo.html

Robocopy version XP027 est livré avec Vista.

Version XP010
On peut télécharger une version pour XP par là :
http://www.gratilog.net/xoops/search.php?action=results&query=robocopy
Windows Server 2003 Resource Kit Tools

Récupérer robocopy.exe dans le dossier d'installation et le copier dans Windows pour éviter les problèmes de path.

 

Exemples d'utilisation

Robocopy et les Liens NTFS :
http://fspsa.free.fr/jonctions.htm
http://fspsa.free.fr/jonctions.htm#robocopy

Importance du commutateur /XJ pour ne pas copier les Liens NTFS :
http://fspsa.free.fr/recursivite.htm
http://fspsa.free.fr/recursivite.htm#copie-de-jonctions-recursives

Pour obtenir l'aide de robocopy entrer robocopy /?

Un script de backup proposé par François Dunoyer et Que-se passe-t-il dans mon script ?

Robocopy est plutôt fait pour copier des dossiers. On peut cependant copier un fichier. Exemple :
robocopy source cible\ rapport.docx
On pourra utiliser des caractères génériques (? pour des caractères, ou * pour une zone). Exemple :
robocopy source cible\ rapport*.doc?

Noter l'utilisation de l'anti-slash (barre oblique inverse \ ) à la fin du nom du dossier cible.
De cette façon robocopy ne demande pas de lever le doute entre fichier ou dossier, et il crée le dossier s'il n'existe pas.

Sauvegarde via le réseau :
robocopy \\PCXP\Dossier \\PC98\Dossier /MIR /R:0 /W:0
La commande s'utilisera depuis la machine nommée "PCXP" car robocopy ne fonctionne pas avec Windows98.

/MIR
Faire très attention avec le commutateur /MIR (miroir). Si un fichier n'existe pas dans la source, il est supprimé dans la cible. Une inversion ou une erreur de cible peut-être catastrophique. /MIR inclue /E et /PURGE (purge des fichiers absents)

/E
Ce commutateur est utilisé pour copier également les dossiers vides sans /PURGE. On pourra commencer avec /E au lieu de /MIR pour les premiers tests.

/L
Ce commutateur génère une Liste au lieu de faire la copie. Il permet donc de faire les premiers tests sans risque.



Sauvegarder le disque D: sur le disque S:
robocopy D: S: /MIR /R:0 /W:0
Robocopy ne s'arrête pas sur une erreur de fichier :
R = nombres d'essais après échec (1 million par défaut). En pratique souvent 1 ou 0.
W = temps d'attente entre essais (30s par défaut). En pratique souvent 1 ou 0.

Écrire le nom du dossier de destination avec un anti-slash final afin de préciser à robocopy qu'il s'agit bien d'un répertoire. Sinon, au cas où le dossier n'existe pas, robocopy demandera si c'est un fichier ou un dossier, et le processus sera stoppé.
Exemple: Sauvegarde\

On peut arrêter robocopy à tout instant avec CTL+C.

/MIR fait une copie miroir et supprime donc dans la cible les fichiers qui n'existent plus dans la source. Faire très attention de ne pas se tromper ! Surtout ne pas inverser source et cible !

Il est recommandé d'utiliser un batch explicitant les opérations. On diminue ainsi le risque d'erreur :
=======================================================================
@echo off>nul
set source=source
set cible=cible
echo robocopy %source% %cible% /MIR
set /p question=Pour confirmer entrer OUI, L pour le mode List :
if /i "%question%"=="OUI" goto :vazy
echo Vous n'avez pas repondu OUI :
if /i "%question%"=="L" goto :liste
goto :end
:liste
echo MODE LISTE : AUCUNE COPIE AUCUNE SUPPRESSION
set liste=^/L
:vazy
robocopy %source% %cible% /MIR /w:1 /r:1 %liste%
goto :end
:end
if /i "%question%"=="L" echo FIN DU MODE LIST (AUCUNE COPIE AUCUNE SUPPRESSION)
start %source% && start %cible%
echo Fin du batch
pause
goto :eof
=======================================================================

/L permet de simuler une copie (List only). Pratique pour tester, mais aussi pour récupérer des informations.

/SECFIX
Comment faire pour copier des informations sur la sécurité sans copier de données de fichier
http://support.microsoft.com/kb/323275

Aides :
robocopy /?
http://mclaveau.com/gvrac/robo.html
http://technet.microsoft.com/en-us/library/cc772390.aspx
http://technet.microsoft.com/en-us/library/cc733145.aspx

Il est souvent demandé comment copier des fichiers sans changer leurs dates.
Robocopy est la réponse :
- Copie de tous les fichiers sans changement des attributs
- Copie de tous les fichiers sans changements des dates
- Copie d'arborescences complètes mêmes avec dossiers vides
- Occupation processeur très faible
- Copie rapide : 18 mn pour 45 Gio en 56793 dossiers et fichiers
- Fonctionne très bien en tâche de fond (On peut faire autre chose)
- Très léger et autonome : 80 kio
- Nombreuses options (robocopy /? pour les voir)
- Syntaxe très simple
- Peut utiliser des fichiers de commande

Utilisation de robocopy par Michel Claveau pour sauver %userprofile% avec Robocopy XP010
http://groups.google.com/group/microsoft.public.fr.windows.vista.general/msg/4fedc52f6cb4b1bb
robocopy "%USERPROFILE%" "%DEST%" /XJ /XD "%USERPROFILE%\AppData\Local\Microsoft\Windows Mail\Backup" "%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files" "%USERPROFILE%\AppData\Local\Temp" "%USERPROFILE%\AppData\Local\Microsoft\Windows Live\Services\Cache" /MIR /FFT /S /COPYALL /R:1 /W:1 /ETA /NFL

/XJ permet de ne pas copier les junctions
/XD eXclure de la copie les Dossiers indiqués (inutile de copier les temporaires et assimilés)
/MIR pour Miroir
/FFT Assume FAT File Times (2-second granularity). Useful for copying to third-party systems that declare a volume to be NTFS but only implement file times with a 2-second granularity.
/S process the entire directory tree, including subdirectories
/COPYALL :: copie toutes les infos de fichier (équivaut à /COPY:DATSOU).
/R:1 /W:1   En cas de loupé (fichier occupé) : on attend une seconde et on tente encore seule une fois (valeurs par défaut : 1 000 000 d'essais avec attentes de 30 secondes !)
/ETA :: affiche l'heure de fin estimée de la copie des fichiers.
/NFL :: pas de liste de fichiers : n'enregistre pas les noms de fichiers.

L'exemple suivant montre comment décomposer la commande dans un batch.
Les @ servent à masquer la commande à l'exécution pour une meilleure lecture.
On pourrait utiliser la commande @echo off mais cette façon de faire permet de choisir plus facilement les commandes à afficher en retirant l'arobasse @.
====================================================================
Sauvegarde du disque D vers le disque D d'un PC tartempion du réseau.
On ne recopie pas les Corbeilles XP/Vista
@set source=d:
@set pc=tartempion
@set cible=\\%pc%\d:
@start %source%
@start %cible%
@echo Recopie de %source% vers %cible%
@pause
robocopy "%source%" "%cible%" /XD recycler $RECYCLE.BIN /MIR /FFT /S /COPYALL /R:1 /W:1 /ETA /NFL
@pause>nul
====================================================================

D'autres idées d'utilisation
http://groups.google.com/group/microsoft.public.fr.scripting/browse_frm/thread/5ee8d78951db0076/


Alternatives to the Directory Replicator Service
http://support.microsoft.com/kb/160513/en

http://blogs.technet.com/deploymentguys/archive/2008/06/16/robocopy-exit-codes.aspx

 

Aide de Robocopy

Version XP010 pour Windows XP
Microsoft Robocopy GUI copie dans son dossier d'installation une aide détaillée de Robocopy :
http://fspsa.free.fr/robocopy-xp010.pdf

Version XPO27 pour Vista
Windows\system32\Robocopy.exe
L'aide ci-dessous est celle obtenue depuis cette version.
Il y a des petites différences par rapport à la version XP010, plus ancienne.
Ne pas utiliser la Version Vista avec XP (ne marchera pas).
Pour info il existe une version XP026
 

Comment régler les Propriétés d'une Console de Commandes et copier le contenu

G:\>robocopy /?

-------------------------------------------------------------------------------
ROBOCOPY :: Copie de fichiers robuste pour Windows
-------------------------------------------------------------------------------

Début : Sat Oct 03 16:49:35 2009

Utilisation :: ROBOCOPY source destination [fichier [fichier]...] [options]

source :: répertoire source (lecteur:\chemin ou \\serveur\partage\chemin).
destination :: rép. de destination (lecteur:\chemin ou \\serveur\partage\chemin).
fichier :: fichier(s) à copier (noms/caractères génériques : valeur par défaut "*.*").

::
:: Options de copie :
::
/S :: copie les sous-répertoires non vides uniquement.
/E :: copie les sous-répertoires, y compris les vides.
/LEV:n :: copie uniquement les n premiers niveaux de l'arborescence source.

/Z :: copie les fichiers en mode de redémarrage.
/B :: copie les fichiers en mode de sauvegarde.
/ZB :: utilise le mode de redémarrage ; si l'accès est refusé, utilise le mode de sauvegarde.
/EFSRAW :: copie tous les fichiers chiffrés en mode EFS RAW.

/COPY:indicateur[s]copie :: spécifie les éléments à copier pour les fichiers (/COPY:DAT par défaut).
(indicateurscopie : D=Données, A=Attributs, T=horodaTages).
(S=Sécurité=ACL NTFS, O=infos prOpriétaire, U=infos d'aUdit).

/DCOPY:T :: copie les horodatages de répertoire.

/SEC :: copie des fichiers avec sécurité (équivaut à /COPY:DATS).
/COPYALL :: copie toutes les infos de fichier (équivaut à /COPY:DATSOU).
/NOCOPY :: ne copie aucune info de fichier (utile avec /PURGE).

/SECFIX :: corrige la sécurité de tous les fichiers, même les fichiers ignorés.
/TIMFIX :: corrige les horodatages de tous les fichiers, même les fichiers ignorés.

/PURGE :: supprime les fichiers/répertoires de destination qui n'existent plus dans la source.
/MIR :: met en MIRoir une arborescence (équivaut à /E plus /PURGE).

/MOV :: déplace les fichiers (les supprime de la source après la copie).
/MOVE :: déplace les fichiers ET les répertoires (les supprime de la source après la copie).

/A+:[RASHCNET] :: ajoute les Attributs donnés aux fichiers copiés.
/A-:[RASHCNET] :: supprime les Attributs donnés des fichiers copiés.

/CREATE :: crée une arborescence et des fichiers de longueur nulle uniquement.
/FAT :: crée des fichiers de destination au format de nom 8.3 FAT uniquement.
/256 :: désactive la prise en charge des chemins d'accès très longs (> 256 caractères).

/MON:n :: source du moniteur ; réexécuté lorsque plus de n modifications sont observées.
/MOT:m :: source du moniteur ; réexécuté après m minutes en cas de modification.

/RH:hhmm-hhmm :: heures d'exécution : heures auxquelles de nouvelles copies peuvent être lancées.
/PF :: vérifie les heures d'exécution Par Fichier (et non par passage).

/IPG:n :: délai entre les paquets (ms) pour libérer la bande passante sur les lignes bas débit.

/SL:: copie les liens symboliques par opposition à la cible.
::
:: Options de sélection des fichiers :
::
/A :: copie uniquement les fichiers où l'attribut Archive est défini.
/M :: copie uniquement les fichiers où l'attribut Archive est défini et le réinitialise.
/IA:[RASHCNETO] :: Inclut uniquement les fichiers où l'un des Attributs donnés est défini.
/XA:[RASHCNETO] :: eXclut les fichiers où l'un des Attributs donnés est défini.

/XF fichier [fichier]... :: eXclut les fichiers correspondant aux noms/chemins/caractères génériques donnés.
/XD répertoires [répertoires]... :: eXclut les répertoires correspondant à des noms/chemins donnés.

/XC :: eXclut les fichiers Changés.
/XN :: eXclut les fichiers Nouveaux.
/XO :: eXclut les fichiers anciens.
/XX :: eXclut les fichiers et répertoires supplémentaires.
/XL :: eXclut les fichiers et répertoires solitaires.
/IS :: Inclut les mêmeS fichiers.
/IT :: Inclut les fichiers optimisés.

/MAX:n :: taille de fichier maximale : exclut les fichiers de taille supérieure à n octets.
/MIN:n :: taille de fichier minimale : exclut les fichiers de taille inférieure à n octets.

/MAXAGE:n :: Antériorité maximale du fichier : exclut les fichiers plus anciens que n jours/qu'une date n.
/MINAGE:n :: Antériorité minimale du fichier : exclut les fichiers plus récents que n jours/qu'une date n.
/MAXLAD:n :: dernière date d'accès MAXimale : exclut les fichiers inutilisés depuis n.
/MINLAD:n :: dernière date d'accès MINimale : exclut les fichiers utilisés depuis n.
(si n < 1900, alors n = n jours, sinon n = date JJMMAAA).

/XJ :: eXclut les points de Jonction (normalement inclus par défaut).

/FFT :: suppose des heures de fichier FAT (granularité de 2 secondes).
/DST :: compense les différences d'heure d'été d'une heure.

/XJD :: eXclut les points de Jonction pour les répertoires.
/XJF :: eXclut les points de Jonction pour les Fichiers.

::
:: Options de nouvelle tentative :
::
/R:n :: nombre de tentatives après l'échec de copies : 1 million par défaut.
/W:n :: délai entre les tentatives : 30 secondes par défaut.

/REG :: enregistre /R:n et /W:n comme paramètres par défaut dans le Registre.

/TBD :: attend la détermination des noms de partage (erreur de nouvelle tentative 67).

::
:: Options d'enregistrement dans le journal :
::
/L :: Liste uniquement : pas de copie, d'horodatage ou de suppression de fichiers.
/X :: signale tous les fichiers supplémentaires et pas uniquement ceux sélectionnés.
/V :: produit un résultat détaillé en affichant les fichiers ignorés.
/TS :: inclut les horodaTageS des fichiers sources dans le résultat.
/FP :: inclut le chemin d'accès complet des fichiers dans le résultat.
/BYTES :: affiche les tailles en octets.

/NS :: pas de taille : n'enregistre pas les tailles de fichier.
/NC :: pas de classe : n'enregistre pas les classes de fichier.
/NFL :: pas de liste de fichiers : n'enregistre pas les noms de fichiers.
/NDL :: pas de liste de répertoires : n'enregistre pas les noms de répertoire.

/NP :: pas de compteur de progression : n'affiche pas le % copié.
/ETA :: affiche l'heure de fin estimée de la copie des fichiers.

/LOG:fichier :: copie le statut dans le fichier journal (remplace le journal existant).
/LOG+:fichier :: copie le statut dans le fichier journal (ajoute au journal existant).

/UNILOG:fichier :: copie le statut dans le fichier journal en Unicode (remplace le journal existant).
/UNILOG+:fichier :: copie le statut dans le fichier journal en Unicode (ajoute au journal existant).

/TEE :: résultat dans la fenêtre de la console et dans le fichier journal.

/NJH :: pas d'en-tête de tâche.
/NJS :: pas de résumé de tâche.

/UNICODE :: sortie au format UNICODE.

::
:: Options de tâche :
::
/JOB:NomTâche :: prend les paramètres du fichier de tâche nommé.
/SAVE:NomTâche :: enregistre les paramètres dans le fichier nommé
/QUIT :: arrête après traitement de la ligne de commande (pour afficher les paramètres).
/NOSD :: aucun répertoire source spécifié.
/NODD :: aucun répertoire de destination spécifié.
/IF :: Inclut les fichiers suivants.

G:\>


 


Merci d'avoir lu jusqu'ici !
Retour au début
Les restes du site
JF (Jean-François)
 

compteur Free
Publié le 4/10/2009