manibam
Goto Top

Robocopy log file

Guten Morgen

Habe folgendes anliegen:

Ich will das Robocopy mir ein Logfile ausspuckt, aber nur als Zusammenfassung.
Ich kopiere täglich über 500.000 files, und ich will im log nicht in 500.000 zeilen
rumscrollen, um herauszufinden, welche Files robocopy geskiped hat.

Gibts da ne brauchbare Lösung?

Content-Key: 137839

Url: https://administrator.de/contentid/137839

Printed on: April 19, 2024 at 01:04 o'clock

Member: keksprinz
keksprinz Mar 10, 2010 at 06:40:38 (UTC)
Goto Top
Jupp mit einer Zweiten Batch zurechtschneiden.

if (%1)==() (set rclog=logbuch.txt) else (set rclog=%1)

find /n "------------------------------------------------------------------------------" %rclog% >D:\tmp.txt

for /F "delims= skip=2 tokens=1" %%a in ( D:\tmp.txt) do Set /a rcZeile=%%a - 1

more +%rcZeile% %rclog%
und den more-Output ggf in eine neue Datei mit
echo Robocopy-Summary vom %date%: >summary.txt
more +%rcZeile% %rclog% >>summary.txt
Member: Phalanx82
Phalanx82 Mar 10, 2010 at 14:31:29 (UTC)
Goto Top
Hi,

also unser Batch File für unser Backup sieht folgendermaßen aus:

@echo OFF
SETLOCAL

SET _source=\\"Server"\"Ordner auf dem Server"

SET _dest=D:\"Backup Zielordner root"\"Unterordner"

SET _what=/COPYALL /SEC /MIR
:: /COPYALL :: COPY ALL file info
:: /B :: copy files in Backup mode.
:: /SEC :: copy files with SECurity
:: /MIR :: MIRror a directory tree

SET _options=/R:0 /W:0 /LOG:MyLogfile"Name des Backups".txt /NFL /NDL
:: /R:n :: number of Retries
:: /W:n :: Wait time between retries
:: /LOG :: Output log file
:: /NFL :: No file logging
:: /NDL :: No dir logging

ROBOCOPY %_source% %_dest% %_what% %_options%


Und dazu das Ergebnis der Log:

ROBOCOPY :: Robust File Copy for Windows :: Version XP010

Started : Tue Mar 09 12:02:45 2010

Source : \\whatever\
Dest : D:\whereever\

Files : *.*

Options : *.* /NDL /NFL /S /E /COPY:DATS /PURGE /MIR /R:0 /W:0




Total Copied Skipped Mismatch FAILED Extras
Dirs : 23 0 23 0 0 0
Files : 2885 53 2832 0 0 0
Bytes : 11.532 g 66.85 m 11.466 g 0 0 0
Times : 0:00:18 0:00:05 0:00:00 0:00:12

Speed : 12497537 Bytes/sec.
Speed : 715.114 MegaBytes/min.

Ended : Tue Mar 09 12:03:04 2010


die Schalter /NFL und /NDL sind die Optionen die du suchst ;)

Die verhindern das skipped Files/Ordner in der Log aufschlagen.


Mfg.
Member: manibam
manibam Mar 10, 2010 at 15:37:08 (UTC)
Goto Top
Vielen Dank.

aber was genau passiert im Backupmode? (/B) und was heisst "copy file with security" (/sec)

edit: und noch ne frage, wir kann ich imme rein neues Logfile erstellen lassen? jetzt wird das alte ja immer überschrieben.
Member: Phalanx82
Phalanx82 Mar 14, 2010 at 23:09:22 (UTC)
Goto Top
Hi,

/sec kopiert die Sicherheitseinstellungen des Files mit. Sprich Lese/Schreibrechte der Dateien
und Ordner die du kopierst. Das /b sollte die Originalen Files das Archiv Tag setzen was Windows
mitteilt das die Datei schon ins Backup eingeflossen ist. (Hat an dieser Stelle nix mit Robocopy zu tun
ist für andere Backup Methoden eher interessant).

Neues Logfile anlegen mhm ok. Du kannst diesen Code hier in eine andere Batch packen und aus
der dann das Robocopy Batch files starten:

@echo off
rem ************************************************************
rem *
rem * Batch zur Speicherung einer Datei mit dem aktuellen
rem * Datum & Zeit als Namensanhängsel
rem * UND
rem * anschließender Start eines Programs
rem *
rem ************************************************************
set LOGFILE=C:\"deinLogfile".txt  
set ROBOCOPYBAT=C:\"deine_Robocopy_Batch".bat  

rem ************************************************************
rem * existiert das Logfile ?
rem ************************************************************
if exist %LOGFILE% goto SAVEFILE
echo ERROR: Protokoll-Datei "%LOGFILE%" nicht gefunden!  
goto STARTROBOCOPYBAT

:SAVEFILE
rem ************************************************************
rem * aktuelles Datum / aktuelle Zeit einholen
rem ************************************************************
set TAG=%DATE:~3,2%
set MONAT=%DATE:~6,2%
set JAHR=%DATE:~9,4%
set STD=%TIME:~0,2%
set MIN=%TIME:~3,2%

rem ************************************************************
rem * neuen Dateinamen festlegen, Datei umspeichern
rem ************************************************************
set NEW_LOGFILE=%LOGFILE%.%JAHR%-%MONAT%-%TAG%.%STD%%MIN%Uhr.txt
copy %LOGFILE% "%NEW_LOGFILE%"  

:STARTROBOCOPYBAT
rem ************************************************************
rem * Robocopy Batch starten
rem ************************************************************
START %"ROBOCOPY.BAT"% &  
exit


die entsprechenden Stellen deinen Bedürfnissen anpassen face-smile

Mfg.


[Edit Biber] Codetags++ [/Edit]