Comment masquer les lignes «Extra File» et «100%» de la sortie de robocopy?

17

J'ai un script robocopy pour sauvegarder nos référentiels Kiln qui fonctionne tous les soirs, qui ressemble à ceci:

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /LOG:"$backupLogLocation\BackupKiln.txt" /NFL /NDL /NP

Dans la sortie, il y a une tonne de lignes qui contiennent des "fichiers supplémentaires", comme ceci:

*EXTRA File              153    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdt
*EXTRA File               12    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdx
*EXTRA File              128    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fnm
*EXTRA File              363    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.frq
*EXTRA File               13    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.nrm

De plus, il y a alors des centaines de lignes en bas qui ne contiennent que "100%", comme ceci:

100%  
100%  
100%  
100%  
100%  
100%  
100%  

En plus de rendre les fichiers journaux énormes (il y a beaucoup de dossiers / fichiers dans les dépôts Kiln), il est ennuyeux de parcourir les journaux de temps en temps pour voir si tout fonctionnait bien.

  1. Comment puis-je empêcher l'apparition de "Fichiers supplémentaires" dans le journal? (modifier: toutes les lignes, pas seulement le texte car / NC s'arrêtera)
  2. Comment puis-je empêcher ces ridicules lignes "100%" d'apparaître dans le journal?

J'ai essayé toutes les combinaisons de commutateurs auxquelles je peux penser (les commutateurs actuels sont répertoriés ci-dessus dans la commande), mais aucun ne semble les cacher!

Danny Tuppeny
la source
Selon ss64.com/nt/robocopy.html, cela devrait fonctionner. Avez-vous essayé de changer l'ordre des paramètres pour refléter la documentation? Ce serait: / L / NP / LOG: fichier / UNILOG: fichier / LOG +: fichier / UNILOG +: fichier / TS / FP / NS / NC / NFL / NDL / TEE / NJH / NJS
Luiz Angelo

Réponses:

8

Je viens de remarquer qu'il vous manque un / NC là-bas.

/ NC: aucune classe - ne pas enregistrer les classes de fichiers.

Les fichiers de classe sont ... Que veut dire robocopy par peaufiné, solitaire et extra?

J'essaierais donc: robocopy "$ liveRepoLocation" "$ cloneRepoLocation" / MIR / MT / W: 3 / R: 100 / NP /LOG:"$backupLogLocation\BackupKiln.txt "/ NC

Modifier 1

Ma faute. Je n'ai pas vu que vous aviez déjà mentionné d'essayer / NC

J'ai testé ici. Il semble que l'option / MIR ignore les options de journalisation. De plus, / MT le gâche, en ajoutant 100%.

La seule façon de travailler était

D: \ robocopy> destination de la source de la photocopie / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt ".

* Il fonctionne en fait avec / MIR. Mais vous devez spécifier / NFL et /NDL.* Je ne sais pas si cela vous convient.

Si vous essayez / MT, il montrera toujours le 100% idiot

Modifier 2

Je sais que la question concernait Robocopy, mais je pense que vous devriez essayer RichCopy http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

Voici la ligne de commande:

richcopy "D: \ robocopy \ source" "D: \ robocopy \ destination" / P / QO / QP "D: \ robocopy \ report.log" / UE / US / UD / UPC / UFC / USC / UPR / UET

Il démarre l'interface graphique de RichCopy et se ferme une fois terminé.

Et voici le journal

28/11/2012 11: 35: 19,0, Début de copie,

28/11/2012 11: 35: 20,0, Chemin source: D: \ robocopy \ source,

28/11/2012 11: 35: 20,0, Chemin de destination: d: \ robocopy \ destination,

28/11/2012 11: 35: 20,0, Nombre de fichiers source: 12 fichiers,

28/11/2012 11: 35: 20,0, Nombre de fichiers copiés: 13 fichiers,

28/11/2012 11: 35: 20,0, Nombre de fichiers purgés: 1 224 fichiers,

28/11/2012 11: 35: 20,0, Temps écoulé: 00:00:01,

28/11/2012 11: 35: 20,0, Performance moyenne: 1 641 528 octets / sec,

28/11/2012 11: 35: 20,0, Performance moyenne: 13 fichiers / sec,

28/11/2012 11: 35: 20,0, Copie terminée, D: \ robocopy \ source

Luiz Angelo
la source
1
/ NC supprime simplement la colonne "Fichier supplémentaire", de sorte que le texte ne s'affiche pas. Le reste de la ligne est toujours inclus. Je ne veux pas du tout la ligne; Je veux juste le résumé :(
Danny Tuppeny
Ma faute. Je n'ai pas vu que vous l'aviez déjà mentionné. J'ai testé ici. Il semble que l'option / MIR ignore les options de journalisation. Aussi / MT gâche ça. La seule façon de travailler était "D: \ robocopy> destination de la source de la photocopie / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt". Si vous essayez / MT, il affichera toujours le 100% idiot.
Luiz Angelo
1
Les 100% sont la pire partie (beaucoup plus que des fichiers supplémentaires); Je ne savais pas que c'était MT qui faisait ça, donc je pourrais retirer ça si ça ne donne pas un énorme avantage!
Danny Tuppeny
Marquer cela comme correct car c'est une solution aux 100%, et je ne pense pas qu'il y ait une solution à la journalisation des "fichiers supplémentaires" avec / MIR :(
Danny Tuppeny
Je viens de modifier ma réponse d'origine. Il suffit de poster un nouveau commentaire pour ne pas le manquer.
Luiz Angelo
5

L' /XXoption exclut les fichiers supplémentaires de la liste. Perversement, cette option est répertoriée dans les File Selectionoptions, non Logging. C'est l'opposé de l' /Xoption d'enregistrement, je suppose.

Keith
la source
1
Je crois que / XX vous empêche de sélectionner les fichiers supplémentaires, et / X est juste pour la journalisation, mais vous permet d'afficher ENCORE PLUS de fichiers supplémentaires! Le / XX a fait l'affaire pour moi.
sonjz
1
-1, car / XX laisse le fichier supplémentaire sur la destination, au lieu de le supprimer, comme prévu pour le processus de mise en miroir.
marquez le
3

Je pense que cela peut fonctionner:

robocopy sourceDir targetDir *.* /njh /njs /ndl /np | find /v "*EXTRA File"

Il suffit donc de diriger la sortie vers "find" avec le / V pour exclure les lignes qui contiennent le texte spécifié "* Extra File".

Svein Terje Gaup
la source
Comment exclure le% progress (compteur 0 à 100%) du log uniquement (mais toujours visible sur la console)?
PeterCo
0

que diriez-vous d'utiliser les commutateurs

 /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "log file name with or without path"

vous avez donc

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "$backupLogLocation\BackupKiln.txt"
  • le double %% doit avoir un% dans la chaîne de recherche
  • le 2> & 1 redirige le flux stderr vers stdout car certains messages sont écrits dans stderr et nous voulons capturer ces lignes comme le fait le commutateur / LOG.
  • les 2 commandes findstr avec le commutateur / v trouvent toutes les lignes qui ne contiennent pas la chaîne de recherche
  • le "nom de fichier journal" redirige la sortie finale vers votre fichier journal. Si vous utilisez normalement / LOG: +, utilisez plutôt >> "log filename" à la place

Remarques: si vous l'utilisez dans un script PowerShell, comme vous semblez l'être, vous devez utiliser findstr au lieu de rechercher comme vous le pouvez dans un fichier .bat ou .cmd. Notez que / L et / C: ne sont pas pris en charge par find mais pour la commande find ils ne sont pas requis.

BeowulfNode42
la source