robocopy

ro­boco­py — schnel­les Back­up in Windows

Jetzt oute ich mich: Ter­mi­nal­pro­gram­me sind ein Quell der Freu­de! Meist sind die Kon­so­len­pro­gram­me klein, schnell und ef­fi­zi­ent, ganz nach dem KISS-Prin­zip.
Und Mi­cro­soft hat mit “ro­boco­by” ein an­sehn­li­ches Pro­dukt ge­schaf­fen, um kom­for­ta­ble Da­ten­si­che­run­gen durch­zu­füh­ren. Ich be­zie­he mich in die­sem Bei­trag auf die ro­boco­py-Ver­si­on in “Mi­cro­soft Win­dows [Ver­si­on 10.0.19042.868]”.
Hier gebe ich ei­ni­ge Hin­wei­se zur Nutzung. 

In­halts­ver­zeich­nis

  • Li­zenz
  • Ein­satz­ge­bie­te
  • Vor­tei­le
  • Nach­tei­le
  • Funk­ti­ons­wei­se
  • Syn­tax
  • Op­ti­on “/MT
  • Sze­na­rio
  • Wei­te­re Informationen

Li­zenz

Die Er­laub­nis der Nut­zung ent­spricht der EULA von Win­dow, so mei­ne An­nah­me, also kei­ne Open Source Soft­ware. Das ge­fällt mir nicht, aber die Ein­fach­heit von ro­boco­py, macht die Ar­beits­wei­se doch et­was transparent.

Ein­satz­ge­bie­te

  • Fir­men­um­feld und Organisationen
  • Be­treu­ung von meh­re­ren Arbeitsplätzen
  • Si­che­rung auf NAS oder/und Ser­ver oder/und Cloud

Vor­tei­le

  • Ein­fa­cher Syntax
  • Die Ein­ga­be von “ro­boco­py /?” zeigt 92 Op­tio­nen an
  • Fil­tern von Ver­zeich­nis­sen und Dateien
  • Auch mit Wild­cards an bei­den Sei­ten von Dateien
  • Sehr schnel­le Datensicherung
  • Kom­bi­nier­bar mit an­de­ren Batch-Befehlen
  • Kein gro­ßes Pro­gramm mit un­ge­woll­ten Abhängigkeiten
  • Kann sehr gut in­te­griert wer­den in schon vor­han­de­ne Strukturen

Nach­tei­le

  • Kei­ne Open Source Soft­ware, was mehr zur Si­cher­heit bei­getra­gen hätte
  • Die Mi­cro­soft-Do­ku­men­ta­ti­on auf Deutsch ist bei ei­ni­gen Op­tio­nen unklar 
  • Die Op­ti­on /UNICODE be­inhal­tet nur den Zei­chen­satz Uni­code “ISO10646” so­wie “IBM850” und da­mit lei­der im­mer noch nicht “Uni­code Trans­for­ma­ti­on For­mat”, wie “UTF‑8”

Funk­ti­ons­wei­se und Op­ti­on “/MIR

Also das wird jetzt spe­ku­la­tiv, doch das liegt an Mi­cro­soft selbst.
Bei­spiels­wei­se steht die wich­tigs­te Op­ti­on “/MIR für das Spie­geln von Da­ten­ver­zeich­nis­sen, also das kom­plet­te Über­tra­gen der Da­ten von Quel­le zum Ziel ohne In­halt. Aber in Wirk­lich­keit wird in­kre­men­tell Syn­chro­ni­siert.
Doch auch das ist nicht rich­tig, denn in­kre­men­tell be­deu­tet nicht nur, dass neue Da­tei­en hin­zu­ge­fügt wer­den, beim in­kre­men­tel­lem Si­chern wer­den im Quell­ver­zeich­nis ge­lösch­te Da­tei­en im Ziel­ver­zeich­nis bei­be­hal­ten.
Bei der Op­ti­on “/MIR” wer­den die im Quell­ver­zeich­nis ge­lösch­ten Da­ten, eben­falls im Ziel­ver­zeich­nis ge­löscht. Das ist mir sym­pa­thi­scher, denn wenn man das Prin­zip der Mehr­fach­si­che­rung nutzt, also “Groß­va­ter-Va­ter-Sohn” oder die “Tür­me von Ha­noi”, ist eine Ver­schlan­kung sinnvoller.

Syn­tax

Syn­tax-Über­sicht mit Pfad zu ro­boco­py. Es gin­ge auch nur mit der An­ga­be “ro­boco­py”. Aber die­ser Hin­weis ist für Script-Schrei­ber die über vir­tu­el­le Ma­schi­nen oder Netz­wer­ke hin­weg arbeiten. 

Ein wei­te­rer Hin­weis be­trifft die Pfad­an­ga­ben. Es sind nicht zwin­gend die An­füh­rungs­zei­chen not­wen­dig, nur wenn der Pfad oder die Da­tei min­des­tens ein Leer­zei­chen be­sitzt. Trotz­dem, auch aus Be­quem­lich­keit set­ze ich al­les in Anführungszeichen. 

<Pfad\zu\robocopy> <Quelle> <Ziel> <Optionen>

Hier ein klei­nes Bei­spiel mit fol­gen­den Merkmalen:

  • Zwei Si­che­rungs­auf­ga­ben die hin­ter­ein­an­der ab­ge­ar­bei­tet werden
  • Fle­xi­bel durch glo­ba­le %Va­ria­blen%
  • Ko­pie­ren mit Un­ter­ver­zeich­nis­sen durch Op­ti­on /E
  • Lö­schen von Da­ten im Ziel­ver­zeich­nis mit /PURGE
  • Op­ti­on /E und /PURGE in der Op­ti­on /MIR zusammengefasst
  • Meh­re­ren Ver­zeich­nis­sen wer­den aus­ge­schlos­sen mit /XD
  • Meh­re­re Da­tei­en wer­den aus­ge­schlos­sen mit /XF
  • FAT-Zeit­aus­gleich mit /FFT
  • Som­mer- und Win­ter­zeit-Aus­gleich durch /DST
  • Drei Wie­der­ho­lungs­ver­su­che mit /R:3
  • War­te­zeit zwi­schen den Wie­der­ho­lungs­ver­su­chen von 3 Se­kun­den mit /W:3
  • Da­tei­en mit Pfad /FP
  • Zeits­tem­pel der Quell­da­tei bei­be­hal­ten /TS
  • Aus­ga­be der über­sprun­ge­nen Da­tei­en /V
  • Alle Da­tei­en mel­den, nicht nur die ge­si­cher­ten /X
  • Aus­führ­li­che An­zei­ge und Log der Vor­gän­ge im Ter­mi­nal /TEE
  • UNI­CODE-Log­da­tei die fort­lau­fend ist mit /UNICODE /UNILOG+:“Pfad_zur_Datei_und_Dateiname”
  • Log­da­tei mit aus­führ­li­chem Da­tei­na­men durch meh­re­re Variablen
  • Si­che­rung auf Netz­lauf­werk “Z:\”
@echo off 
:: robocoby_%COMPUTERNAME%
"%SYSTEMROOT%\system32\robocopy.exe" "%SYSTEMDRIVE%\Programm\BACKUP" "Z:\Programm" /MIR /FFT /DST /R:3 /W:3 /FP /TS /V /X /UNICODE /UNILOG+:"%USERPROFILE%\Logs\rc-%COMPUTERNAME%_%USERNAME%_programm_%date:~6,4%-%date:~3,2%-%date:~0,2%.txt" /TEE
^
"%SYSTEMROOT%\system32\robocopy.exe" "%ProgramData%\ABC\AutoBackup" "Z:\ABC" /MIR /FFT /DST /XD "%ProgramData%\ABC\AutoBackup\Anwendungsdaten" "%ProgramData%\ABC\AutoBackup\System" /XF "*cache*" "desktop.ini" /R:3 /W:3 /FP /TS /V /X /UNICODE /UNILOG+:"%USERPROFILE%\Logs\rc-%COMPUTERNAME%_%USERNAME%_ABC_%date:~6,4%-%date:~3,2%-%date:~0,2%.txt" /TEE
exit

Op­ti­on “/MT

Von der Op­ti­on “/MT”, also die Nut­zung von Mul­ti­threa­ding, hal­te ich nichts. Ers­tens wur­de die­se Op­ti­on vor Spect­re und Meltdown er­schaf­fen und an­der­seits, wenn die Aus­las­tung der CPU zur Über­hit­zung führt, kann der au­to­ma­ti­sche Hit­ze­schutz grei­fen und da­mit ver­lang­samt sich der Vor­gang sehr stark bei grö­ße­ren Ko­pier­vor­gän­gen. Letzt­end­lich wird da­mit das Ge­gen­teil er­reicht.
Bes­ser man op­ti­miert sei­nen Code im Syn­tax und er­reicht da­mit Stabilität. 

Op­ti­on “/XX

Die­se Op­ti­on “Ex­tra” er­mög­licht Da­ten im Ziel zu hal­ten, zu­sätz­lich zu spei­chern oder teil­ba­re Ver­zeich­nis­se zu hal­ten, die nicht in der Quel­le vor­han­den sind. 

Sze­na­rio

In mei­nen Sze­na­ri­os star­tet eine Batch-Da­tei au­to­ma­tisch zur vor­ge­ge­ben Zeit mit auf­ein­an­der fol­gen­den Anweisungen. 

  1. Schlie­ße alle un­nö­ti­gen Pro­gram­me, Hin­ter­grund­pro­gram­me und Dienste 
  2. Be­rei­ni­ge das ge­sam­te System 
  3. Star­te da­nach die se­pa­ra­te robocopy-Batch-Datei 
  4. War­te bis zum Ende der Aus­füh­run­gen von den robocopy-Anweisungen 
  5. War­te wei­ter­hin mit ei­ner Pau­se von we­ni­gen Se­kun­den, da­mit das Sys­tem noch alle Ar­rays lee­ren kann
  6. Fah­re das kom­plet­te Sys­tem herunter 

Vor­tei­le die­ses Szenarios

  1. Es wird kein tem­po­rä­rer Müll gesichert
  2. Die zen­tra­le Pro­zes­sor­ein­heit und der Ar­beits­spei­cher sind frei für die Sicherungsaufgabe
  3. Dazu ge­ben die se­pa­ra­ten Batch-Da­tei­en eine bes­se­re Mög­lich­keit für eine even­tu­el­le Fehlersuche
  4. Und ein aus­ge­schal­te­ter Com­pu­ter kann nicht mehr in­fil­triert werden 

Wei­te­re Informationen

https://docs.microsoft.com/de-de/windows-server/administration/windows-commands/robocopy

Ihr Kom­men­tar [Pos1] Sei­ten­an­fang