Jak ukryć linie „Extra File” i „100%” przed wyjściem robocopy?

17

Mam skrypt robocopy do tworzenia kopii zapasowych naszych repozytoriów Kiln, który działa co noc, i wygląda mniej więcej tak:

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

W wyniku znajduje się tona wierszy zawierających „plik dodatkowy”, taki jak ten:

*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

Dodatkowo na dole są setki wierszy, które zawierają tylko „100%”, takie jak to:

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

Oprócz tego, że pliki dziennika są ogromne (w repozytoriach Kiln jest wiele folderów / plików), denerwujące jest przeglądanie dzienników od czasu do czasu, aby sprawdzić, czy wszystko działa poprawnie.

  1. Jak zatrzymać wyświetlanie „dodatkowych plików” w dzienniku? (edycja: całe wiersze, a nie tylko tekst, ponieważ / NC się zatrzyma)
  2. Jak zatrzymać te głupie „100%” linii pojawiające się w logu?

Wypróbowałem każdą kombinację przełącznika, jaką mogę wymyślić (bieżące przełączniki są wymienione powyżej w poleceniu), ale żadna z nich nie ukrywa ich!

Danny Tuppeny
źródło
Według ss64.com/nt/robocopy.html powinno działać. Czy próbowałeś zmienić kolejność parametrów w celu odzwierciedlenia dokumentacji? To byłoby: / L / NP / LOG: plik / UNILOG: plik / LOG +: plik / UNILOG +: plik / TS / FP / NS / NC / NFL / NDL / TEE / NJH / NJS
Luiz Angelo

Odpowiedzi:

8

Właśnie zauważyłem, że brakuje tam / NC.

/ NC: Brak klasy - nie rejestruj klas plików.

Pliki klas to ... Co oznacza robocopy przez ulepszony, samotny i dodatkowy?

Więc spróbuję: robocopy "$ liveRepoLocation" "$ cloneRepoLocation" / MIR / MT / W: 3 / R: 100 / NP /LOG:"$backupLogLocation\BackupKiln.txt "/ NC

Edytuj 1

Mój błąd. Nie widziałem, że wspominałeś już o próbowaniu / NC

Testowałem tutaj. Wygląda na to, że opcja / MIR ignoruje opcje rejestrowania. Również / MT to popsuło, dodając 100%.

Jedynym sposobem na rozpoczęcie pracy było

D: \ robocopy> miejsce docelowe źródła robocopy / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt ".

* W rzeczywistości działa z / MIR. Ale musisz podać / NFL i /NDL.* Nie wiem, czy jest to dla Ciebie dopuszczalne.

Jeśli spróbujesz / MT, nadal pokaże głupie 100%

Edytuj 2

Wiem, że pytanie dotyczyło Robocopy, ale myślę, że powinieneś spróbować RichCopy http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

Oto linia poleceń:

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

Uruchamia GUI RichCopy i zamyka po zakończeniu.

A oto dziennik

28/11/2012 11: 35: 19,0, Rozpocznij kopiowanie,

28/11/2012 11: 35: 20,0, Ścieżka źródła: D: \ robocopy \ source,

28/11/2012 11: 35: 20,0, Ścieżka docelowa: d: \ robocopy \ destination,

28/11/2012 11: 35: 20,0, Liczba plików źródłowych: 12 plików,

28/11/2012 11: 35: 20,0, Liczba skopiowanych plików: 13 plików,

28/11/2012 11: 35: 20,0, Liczba usuniętych plików: 1224 plików,

28/11/2012 11: 35: 20,0, Upływający czas: 00:00:01,

28/11/2012 11: 35: 20,0, Średnia wydajność: 1 641 528 bajtów / s,

28/11/2012 11: 35: 20,0, Średnia wydajność: 13 plików / s,

28/11/2012 11: 35: 20,0, Kopiowanie zakończone, D: \ robocopy \ source

Luiz Angelo
źródło
1
/ NC po prostu usuwa kolumnę „Dodatkowy plik”, więc tekst nie jest wyświetlany. Reszta linii jest nadal uwzględniona. W ogóle nie chcę linii; Chcę tylko podsumowanie :(
Danny Tuppeny
Mój błąd. Nie widziałem, że już o tym wspominałeś. Testowałem tutaj. Wygląda na to, że opcja / MIR ignoruje opcje rejestrowania. Również / MT to popsuło. Jedynym sposobem na rozpoczęcie pracy było „D: \ robocopy> miejsce docelowe źródła robocopy / MIR / W: 3 / R: 100 / NS / NC / NFL / NDL / NP /LOG:log.txt”. Jeśli spróbujesz / MT, nadal pokaże głupie 100%.
Luiz Angelo
1
100% jest najgorszą częścią (znacznie więcej niż dodatkowe pliki); nie zdawałem sobie sprawy, że robi to MT, więc może to usunąć, jeśli nie daje to ogromnej korzyści!
Danny Tuppeny,
Oznaczenie tego jako poprawnego, ponieważ jest to rozwiązanie dla 100%, i nie sądzę, że istnieje rozwiązanie dla rejestrowania „dodatkowego pliku” za pomocą / MIR :(
Danny Tuppeny
Właśnie zredagowałem swoją oryginalną odpowiedź. Wystarczy opublikować nowy komentarz, aby go nie przegapić.
Luiz Angelo
5

Ta /XXopcja wyklucza wyświetlanie dodatkowych plików. Przewrotnie, ta opcja jest wymieniona w File Selectionopcjach, a nie Logging. To /Xchyba przeciwieństwo opcji rejestrowania.

Keith
źródło
1
Wierzę, że / XX uniemożliwia wybranie dodatkowych plików, a / X służy tylko do logowania, ale pozwala wyświetlać JESZCZE WIĘCEJ dodatkowych plików! / XX załatwiło sprawę dla mnie.
sonjz
1
-1, ponieważ / XX pozostawia dodatkowy plik w miejscu docelowym, zamiast go usuwać, zgodnie z oczekiwaniami procesu tworzenia kopii lustrzanej.
zaznacz
3

Myślę, że to może działać:

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

Więc potokuj wyjście do „znajdź” za pomocą / V, aby wykluczyć wiersze zawierające określony tekst „* Plik dodatkowy”.

Svein Terje Gaup
źródło
Jak wykluczyć% postępu (licznik od 0 do 100%) tylko z dziennika (ale nadal widoczny na konsoli)?
PeterCo
0

co powiesz na używanie przełączników

 /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"

więc masz

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"
  • podwójne %% musi mieć% w ciągu wyszukiwania
  • 2> & 1 przekierowania strumienia stderr do stdout, ponieważ niektóre komunikaty są zapisywane na stderr i chcemy, aby uchwycić te linie takie jak przełącznik / LOG robi.
  • 2 polecenia findstr z przełącznikiem / v znajdują wszystkie wiersze, które nie zawierają szukanego ciągu
  • > „Nazwa pliku dziennika” przekierowuje ostateczny wynik do pliku dziennika. Jeśli normalnie użyjesz / LOG: +, zamiast tego użyj >> „log filename”

Uwagi: jeśli używasz tego w skrypcie PowerShell, tak jak się wydaje, musisz użyć findstr zamiast find jak w pliku .bat lub .cmd. Zauważ, że / L i / C: nie są obsługiwane przez find, ale dla polecenia find nie są wymagane.

BeowulfNode42
źródło