| Robocopy - der Kopier Gigant |
|
| Artikel - Artikel 2007 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Was ist Robocopy?Robocopy ist ein mächtiges Kommandozeilen-Kopier-Programm. Es dient dazu, inkrementelle Backups von einem Ort an einem anderen zu erstellen. Die Handhabung mag anhand der unzähligen, teils kryptisch anmutenden Parameter etwas umständlich erscheinen. Ein einfaches Backup Ihrer wichtigsten Daten lässt sich trotzdem in sehr kurzer Zeit bewerkstelligen, da es reicht, einen Bruchteil dieser Parameter zu kennen. Über den Taskplaner bzw. die Aufgabenplanung können die Synchronisationsvorgänge sogar automatisiert werden. Wo bekomme ich Robocopy?Robocopy ist in den Windows Server 2003 Resource Kit Tools enthalten. Unter Windows Vista müssen Sie dieses Paket nicht installieren, da Robocopy bereits zum Lieferumfang des Betriebssystems gehört.
Vorteile von Robocopy gegenüber copy und xcopyViele Anwender werden sich nun fragen: Wozu brauche ich Robocopy? Ich habe doch copy und xcopy. Diese zwei Tools sind zwar für viele alltägliche Kopiervorgänge die richtigen, wenn es jedoch darum geht, ein inkrementelles Backup anzulegen, versagen beide. Copy kann nur Inhalte der obersten Ebene kopieren und berücksichtigt Unterordner überhaupt nicht. Xcopy kann mit dem Parameter /s zwar auch Unterordner und deren Dateien berücksichtigen, jedoch keine inkrementelle Kopie anfertigen. So dauert ein Kopiervorgang, der mehrere GB an Daten beinhaltet, immer sehr lange, da grundsätzlich alle Dateien erneut kopiert werden. Außerdem werden keinerlei Dateien im Archivordner gelöscht, auch wenn sie im Quellordner nicht mehr vorhanden sind. Hier kommt Robocopy ins Spiel. Robocopy berücksichtigt neue, geänderte und auch gelöschte Dateien. Dabei ist jedoch Vorsicht geboten. Wenn Sie im Quellordner versehentlich eine Datei gelöscht haben und danach Ihr Backup aktualisieren, wird diese Datei auch in Ihrem Backup nicht mehr vorhanden sein, da Robocopy nicht mehr vorhandene Dateien der Quelle ohne Nachfrage auch im Ziel löscht. Wie lege ich ein Backup an?Prinzipiell benötigen Sie zum Anlegen eines Backups nur einen einzigen Parameter von Robocopy. Dieser Parameter lautet /MIR (Mirror). /MIR legt eine Spiegelung der Struktur der Quelle in einem von Ihnen vorgegebenen Archiv-Ordner an. /MIR besteht eigentlich aus zwei Parametern von Robocopy. /E und /PURGE. /E kopiert alle vollen und auch leeren Unterverzeichnisse, /PURGE löscht alle Dateien im Zielordner, die in der Quelle nicht mehr vorhanden sind. Die Struktur des Befehls muss aussehen wie folgt: robocopy Falls Ihre Pfade Leerzeichen enthalten, muss der Pfad in Anführungszeichen gesetzt werden. Konkretes Beispiel. Sie wollen den Inhalt des Ordners C:\Meine Musik in den Ordner D:\Backup\Meine Musik spiegeln. Dazu muss der Befehl lauten:
Einige ParameterGenerell können Sie die Parameter von Robocopy abfragen, indem Sie ein Kommandozeilenfenster öffnen (Start -> Ausführen -> cmd) und dort folgende Zeile tippen: Der Befehl /COPY:copyflag[s]Wie in unserer Beispielzeile zu sehen, verwendet Robocopy standardmäßig den Befehl /COPY:DAT. Die Parameter von /COPY im Einzelnen lauten:
Weitere Parameter von Copy:
Statt der Eingabe von COPY:DATSOU kann auch /COPYALL verwendet werden. Für den Heimanwender wird die von Robocopy ergänzte Default-Einstellung COPY:DAT wohl ausreichen, für Systemadministratoren können sich die weiteren Parameter jedoch als durchaus sinnvoll erweisen. Die Parameter /R:n und /W:nWie an der obigen Beispielzeile zu sehen ist, hat Robocopy auch hier bereits Default-Werte eingetragen. /R:n gibt die Anzahl der Wiederholungen an, die Robocopy unternimmt, falls ein Kopiervorgang nicht erfolgreich war. /W:n gibt die Wartezeit in Sekunden an, die pausiert wird, wenn ein Kopiervorgang nicht erfolgreich war. Mit der Default-Einstellung (/R:1000000 /W:30) wird Robocopy also bis zu 347 Tage lang einen erfolglosen Kopiervorgang fortsetzen. Die Filterfunktionen /XF /XDBisher werden in unserem Beispiel-Backup alle Dateien und Unterordner kopiert. Jedoch kann es auch schon mal nötig sein, Verzeichnisse oder Dateien vom Backup auszuschließen. Auch hier gibt es entsprechende Parameter. /XF exkludiert Dateien oder Dateitypen, die von Ihnen angegeben werden können. Auch Wildcards werden hier unterstützt. Nehmen wir für unser Beispiel an, Sie möchten keine Playlists in Ihr Backup aufnehmen. Die Playlisten haben das Format m3u. Unsere Befehlszeile müsste also lauten wie folgt:
Die Logfunktion /LOGGerade für automatisierte Backups kann sich eine Logfunktion als nützlich erweisen, da dort nachgesehen werden kann, ob es zu Fehlern kam während des Backups oder was überhaupt gemacht wurde. Natürlich unterstützt Robocopy auch das Anlegen von Logdateien. Mit dem Parameter /LOG:
Mit dem Parameter /TEE werden die Informationen sowohl in die Kommandozeile als auch in die Logdatei geschrieben. Mit /V können auch die Dateien protokolliert werden, die auf beiden Seiten identisch waren und daher übersprungen wurden. Die Probierfunktion /LFür alle, die erst einmal sehen möchten, was genau passieren würde, wenn Sie Robocopy mit den von Ihnen angegebenen Befehlen laufen lassen würden, bietet Robocopy eine Probierfunktion. Mit dem Parameter /L wird nur angezeigt, was Robocopy im Fall der Fälle tun würde. Ausgehend von unserem Beispiel müsste die Befehlszeile nun so aussehen:
Die Monitor-Funktion /MON:n /MOT:nRobocopy kann auch dauerhaft im Hintergrund werkeln. Dazu besitzt das Tool eine Monitor-Funktion, die mit zwei verschiedenen Parametern angesprochen werden kann. /MON:n bewirkt, dass Robocopy das Backup nach n Änderungen aktualisiert. Wenn Sie dort also eine 5 eintragen, wird Robocopy nach 5 Änderungen im Quellverzeichnis aktiv und aktualisiert Ihr Backup. /MOT:n lässt Robocopy nach n Minuten wieder aktiv werden. Wenn Sie /MON:n ohne Angabe von /MOT:n verwenden, setzt Robocopy als Zeitspanne eine Minute. Sie können die Monitor-Funktion auch nur zu einer bestimmten Uhrzeit laufen lassen, dafür ist der Parameter /RH zuständig. Die Eingabe erfolgt im Format /RH:hhmm-hhmm. Um die Monitor-Funktion bspw. nur zwischen 18 und 20 Uhr laufen zu lassen, könnte eine Befehlszeile aussehen wie folgt:
Ausgewählte Parameter im Überblick
Robocopy im NetzwerkRobocopy kann natürlich auch im Netzwerk verwendet werden. Es unterstützt dabei auch UNC-Pfade. Ein großer Vorteil, da man einem Netzlaufwerk nicht erst einen Laufwerksbuchstaben zuweisen muss, damit Robocopy eingesetzt werden kann. Um jedoch im Netzwerk ein Backup anlegen zu können, muss sichergestellt sein, dass das Benutzerkonto, welches Robocopy ausführt, Zugriff auf die Freigabe hat, ohne sich anmelden zu müssen. Robocopy selbst bietet keine Option, Benutzerdaten mit zu übertragen. Es gibt verschiedene Möglichkeiten, dies zu gewährleisten:
Praktische BeispieleNachfolgend möchte ich Ihnen ein paar konkrete Anwendungsbeispiele zeigen, wie ich sie selber benutze. Ich erstelle regelmäßig Kopien meiner wichtigsten Daten, unter anderem auch vom Thunderbird-, Firefox- und Opera-Profil. Zwar habe ich meine Profile schon auf andere Partitionen verschoben, dennoch habe ich gerne ein Backup, falls man durch Änderungen am Profil selbiges mal zerstört. Backup des Thunderbird-ProfilsUm das Profil von Thunderbird zu sichern, welches unter L:\Profiles\Thunderbird liegt, verwende ich folgende Befehlszeile:
Backup des Firefox-ProfilsMein Firefox-Profil liegt unter L:\Profiles\Firefox. Um dieses Profil zu sichern, verwende ich folgende Befehlszeile:
Backup des Opera-ProfilsDas Opera-Profil befindet sich unter L:\Profiles\Opera. Die dazugehörige Befehlszeile muss also lauten: Eine kleine BeispieldateiHier können Sie eine kleine Batchdatei sehen, die die eben erwähnten Profile per Knopfdruck sichern kann. Diese Batchdatei habe ich in den Taskplaner eingebunden und eben aufgrund dieser Tatsache muss ich zunächst auf das Laufwerk und den Pfad wechseln, in dem dieses Script steht. In diesem Ordner wird auch die entsprechende Logdatei angelegt.
Automatisierung über den TaskplanerWenn Sie die Batchdatei in den Taskplaner einbinden, kann das Backup regelmäßig automatisiert aktualisiert werden. Beachten Sie bitte, dass Ihr Benutzerkonto unter Windows über ein Passwort verfügen muss, damit der Taskplaner verwendet werden kann. Grafische Oberflächen (GUI) zu RobocopyWem die Tipperei in der Kommandozeile zu umständlich ist oder wer sich nicht selber eine Batch schreiben möchte, für den möchte ich an dieser Stelle zwei Alternativen zum selbstständigen Tippen präsentieren. Copyrite XPCopyrite XP bietet eine einfache Möglichkeit, ein Script für Robocopy zu generieren, welches Sie später anklicken können. Copyrite XP bietet Zugriff auf so gut wie alle Robocopy-Parameter und ist damit eine sehr gute grafische Oberfläche zu dem Kommandozeilentool. Registerkarte GeneralUnter Source Path können Sie festlegen, welches Verzeichnis als Quelle dienen soll. Unter Destination Path legen Sie das Verzeichnis fest, welches als Ziel dienen soll. Wenn Sie den Haken „Match Destination Folder to Source Folder“ setzen, wird an das Zielverzeichnis noch der Ordnername der Quelle angehangen.
Registerkarte Copy Options 1Legen Sie hier fest, ob Unterverzeichnisse berücksichtigt werden sollen, welcher Modus benutzt wird und welche Dateiinformationen mit kopiert werden sollen. Des Weiteren können Sie einstellen, zu welchen Zeiten Robocopy laufen darf und ob im Netzwerk Pausen beim Kopieren eingelegt werden sollen.
Registerkarte Copy Options 2Die obersten drei Einstellungen dieser Registerkarte sind am ehesten die Einstellungsmöglichkeiten für Systemadministratoren, da hier die weiter oben angesprochenen Parameter /SEC /DATSOU und /NOCOPY gesteuert werden können. Im nächsten Kasten können die Optionen /PURGE und /MIR angesprochen werden. Meistens wird man wohl /MIR brauchen, das entspricht dem Haken bei „Mirror a Directory Tree“. Der nächste Abschnitt steuert die Monitor-Funktion von Robocopy. Die unteren Einstellungsmöglichkeiten werden an dieser Stelle nicht weiter erläutert.
Registerkarte File Selection 1Hier können Sie festlegen, welche Dateiattribute berücksichtigt und welche nicht berücksichtigt werden sollen. Wenn Sie an der Voreinstellung „None“ nichts ändern, werden alle Dateien mit allen Attributen kopiert.
Registerkarte File Selection 2Die interessantesten Möglichkeiten auf dieser Seite sind wohl die Felder „Exclude the following File Names/Wildcards/Paths“ und „Exclude the Following Directory Names/Paths“. Diese beiden Felder entsprechen den Parametern /XF und /XD. Die weiteren Einstellungsmöglichkeiten sind an dieser Stelle für ein normales Backup eher zu vernachlässigen.
Registerkarte RetryHier können Sie festlegen, wie oft und in welchem Abstand ein fehlgeschlagener Kopiervorgang wiederholt werden soll. Im Gegensatz zu den Default-Einstellungen von Robocopy (/R:1000000 /W:30) setzt die GUI beide Werte per default auf 0. Wer andere Werte benutzen möchte, kann sie hier entsprechend einstellen. Wenn Sie noch einen Haken bei „Save As Default“ setzen, wird Copyrite XP die hier eingestellten Werte auch bei der Erstellung eines weiteren Scripts benutzen.
Registerkarte LoggingHier können die Log-Optionen von Robocopy eingestellt werden. Die erste Einstellungsmöglichkeit „Don’t Display % Copied“ entspricht dem Parameter /NP. In dem weißen Kasten kann der Ort der Logdatei definiert werden. Auch kann eingestellt werden, ob die Logdatei jedesmal neu angelegt oder fortgeführt werden soll. Der Haken bei „Output to console window, as well as the log file” entspricht dem Parameter /TEE. Auch auf die Probierfunktion /L haben Sie hier Zugriff. Dazu setzen Sie einfach einen Haken bei „List only – don’t copy, timestamp or delete any files“.
Registerkarte JobUnter dieser Registerkarte haben Sie die Möglichkeit, die gewählten Einstellungen als Batchdatei zu speichern, die Sie entweder manuell anklicken oder in den Taskplaner schalten können. Wenn Sie den Befehl nur einmalig verwenden möchten, klicken Sie unten auf den Button „Copy“, dies startet eine Kommandozeile mit den entsprechenden Robocopy-Parametern, die Sie in Copyrite XP definiert haben.
SyncToyAuch Microsoft bietet seit geraumer Zeit eine vergleichsweise spartanische Oberfläche zu Robocopy an. Diese nennt sich SyncToy. Allerdings bietet auch das SyncToy alle Möglichkeiten, ein Backup zu erstellen oder zu aktualisieren. Zunächst müssen Sie die zu vergleichenden Ordner angeben. Klicken Sie dazu auf den Button „Create New Folder Pair“.
Im folgenden Fenster können Sie den Modus einstellen, welchen SyncToy zum Vergleichen der Verzeichnisse anwenden soll.
Im letzten Fenster schließlich können Sie dem Folder Pair einen beschreibenden Namen geben.
Nachfolgend wird Ihnen eine Zusammenfassung des Folder Pairs angezeigt.
Über den Link „change options“ können Sie bspw. festlegen, ob nur bestimmte Dateitypen kopiert werden sollen oder ob bestimmte Dateitypen nicht kopiert werden sollen.
Über den Link „Select subfolders“ können Sie bestimmen, welche Verzeichnisse bei der Backup-Erstellung nicht berücksichtigt werden sollen.
Über den Button „Preview“ sprechen Sie quasi den Probiermodus /L von Robocopy an. Hier wird Ihnen nur angezeigt, was genau das Backup erledigen würde, wenn Sie auf den Button „Run“ klicken. Im Anschluss an die Vorschau haben Sie auch gleich die Möglichkeit, den Button „Run“ zu betätigen.
PCDFlocke, 28.11.2007
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


















