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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 137839
Url: https://administrator.de/contentid/137839
Ausgedruckt am: 17.11.2024 um 19:11 Uhr
4 Kommentare
Neuester Kommentar
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
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
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.
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.
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:
die entsprechenden Stellen deinen Bedürfnissen anpassen
Mfg.
[Edit Biber] Codetags++ [/Edit]
/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
Mfg.
[Edit Biber] Codetags++ [/Edit]