Salut,
Robocopy n'est pas si difficile que cela à utiliser en lignes de commandes ou dans un fichier batch.
Mon fils a créé un fichier de commandes pour sauvegarder des données d'une vingtaine de PC sur un serveur réseau pour une entreprise. Pour cela il a fait des tests à la maison en local avec ses PC.
Voici une copie de son script de test :
Code : Tout sélectionner
:: Ceci est un exemple simple d'utilisation de Robocopy pour effectuer une sauvegarde réseau
net use \\toto-pc1\ipc$ /user:toto passw123
set cible1=\\toto-pc1\264go
c:\Bin\robocopy "%appdata%\Thunderbird" "%cible1%\%username%\Thunderbird" /MIR /V /NP /R:10 /W:30 /LOG+:"c:\bin\robocopy.log"
c:\Bin\robocopy "%appdata%\Mozilla\Firefox" "%cible1%\%username%\Firefox" /MIR /V /NP /R:10 /W:30 /LOG+:"c:\bin\robocopy.log" /XD Cache
c:\Bin\robocopy "%userprofile%\Mes Documents" "%cible1%\%username%\Mes Documents" /MIR /V /NP /R:10 /W:30 /LOG+:"c:\bin\robocopy.log"
c:\Bin\robocopy "%userprofile%\Bureau" "%cible1%\%username%\Bureau" /MIR /V /NP /R:10 /W:30 /LOG+:"c:\bin\robocopy.log"
ECHO >> C:\Bin\robocopy.log
ECHO -------------------------------- >> C:\Bin\robocopy.log
ECHO ------------ %date% ------------ >> C:\Bin\robocopy.log
ECHO -------------------------------- >> C:\Bin\robocopy.log
net use \\toto-pc1\ipc$ /del
1. Si robocopy a été copié dans un dossier situé dans le path, %windir%\system32 ou C:\Bin, par exemple, "robocopy" suffit.
De même si on ne précise pas le chemin complet du log , il sera créé dans le dossier courant, c'est-à-dire C:\Bin si c'est là que se trouve
le script de commandes DOS.
2. Syntaxe de net use : taper "net use /?" (sans les guillemets) dans une fenêtre Invite de commandes
3. Syntaxe de robocopy : Taper "robocopy /?" (sans les guillemets) dans la même fenêtre noire
Après s'être "loggué" sur le serveur avec net use, on définit un variable
cible1 pour simplifier les commandes suivantes
On utilise
trois variables d'environnement, taper "SET" dans l'invite de commandes pour voir à quoi elles correspondent pour la session en cours.
Dans le script,
ECHO ------------ %date%------------- n'est utile que si l'on enchaîne les rapports successifs d'exécution du script
net use \\toto-pc1\ipc$ /del permet de se déconnecter du serveur.
Extrait de l'affichage de SET montrant les variables les plus utiles (quand je suis "loggué" comme admin sous Windows 2000 Pro) :
APPDATA=C:\Documents and Settings\Administrateur\Application Data <<<<<<
Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Bin;...
SystemDrive=C:
SystemRoot=C:\WINNT
TEMP=C:\Temp
TMP=C:\Temp
USERNAME=Administrateur <<<<<<
USERPROFILE=C:\Documents and Settings\Administrateur <<<<<<
windir=C:\WINNT
Extrait des paramètres de robocopy les plus utiles :
Copy options :
/E copy subdirectories, including Empty ones.
/PURGE delete dest files/dirs that no longer exist in source.
/MIR MIRror a directory tree (equivalent to /E plus /PURGE).
File Selection Options :
/XD dirs [dirs]... eXclude Directories matching given names/paths.
Retry Options :
/R:n number of Retries on failed copies: default 1 million.
/W:n Wait time between retries: default is 30 seconds.
Logging Options :
/V produce Verbose output, showing skipped files.
/NP No Progress - don't display % copied.
/LOG:file output status to LOG file (overwrite existing log).
/LOG+:file output status to LOG file (append to existing log).
En français,
/MIR crée une copie conforme de l'arborescence des dossiers de la source en copiant tous les dossiers y compris les dossiers vides et en supprimant de la destination les fichiers/dossiers qui n'existent plus dans la source.
/XD dirs [dirs] exclut les dossiers dont les noms ou les chemins correspondent : /XD Cache exclut tous les dossiers
Cache quel que soit leur emplacement (y compris leurs sous-dossiers)
/R:n nombre de tentatives en cas d'échec de copie de fichiers, 1 million par défaut si R:n n'est pas présent
/W:n nombre de secondes d'attente entre les tentatives : 30 secondes par défaut
/V produit un rapport verbeux (détaillé), montrant les fichiers qui n'ont pas été mis à jour (cela n'est vraiment utile que pendant les tests de mise au point, et encore)
/NP pas de barre de progression indiquant le nombre de % copiés
/LOG:file output status to LOG file (overwrite existing log). Crée un rapport "file" de nom indiqué en écrasant le précédent
/LOG+:file output status to LOG file (append to existing log). Ajoute le rapport "file" au rapport déjà existant (le crée s'il n'existe pas)
Attention : si l'on enchaîne plusieurs commandes robocopy dans un script, il faut utiliser /LOG+ pour toutes les commandes sauf la première, sinon on n'a que le rapport de la dernière commande robocopy exécutée. Le log créé est souvent plutôt long et pèse quelques dizaines de Ko.
En espérant que cela pourra t'aider,
@+
Il n'y a que deux choses infinies: l'univers et la bêtise humaine et encore, pour l'univers, je ne suis pas sûr (Einstein)