Moin,
vielleicht kann ja wer noch Nutzen draus ziehen, ich hab's mir jetzt ohnehin zusammengesucht...
Vorgeplänkel:
Da ich mehrere Verzeichnisse mit Bildern habe, die auf eine externe Festplatte synchronisiert werden sollen, musste eine einfache Lösung dafür her.
Mir reicht dabei ein ordnerweises Abgleichen, da muss kein supertoller komprimierter, verschlüsselter Container geschrieben werden.
Robocopy
Das ist ein kleines Kommandozeilentool, das bei Windows Vista und 7 enthalten ist - damit lässt sich sowas relativ gut erschlagen.
Bei Windows XP muss es nachinstalliert werden, das ist aber auch kein großes Problem. (Hierzu ganz am Ende)
robocopy ist eigentlich auch nur ein besseres copy - es lassen sich eben ein paar mehr Feinheiten mit einstellen.
Aufgepasst und mitgebaut
Das beißt nicht, keine Sorge.
Eine Batch-Datei kann mit jedem Texteditor angelegt werden, man muss nur beim Speichern die Endung auf .cmd oder .bat setzen, oder wenn das nicht klappt, als .txt speichern und anschließend die Endung anpassen.
Dann wird im Endeffekt mit einem Doppelklick auf die Datei das Backup gestartet - viel komfortabler geht's nicht.
Wenn es nur drum geht, einen Ordner auf ein bestimmtes Laufwerk zu sichern, ist das kein Hit, dann muss in der Datei nur folgendes stehen:
Das sollte sich wohl erschließen
'robocopy' ruft die Funktion auf, dann werden Quell- und Zielordner (bzw. -dateien) angegeben und am Schluss können dann weitere Optionen angefügt werden, dazu ein wenig am Schluss.
Also, es gibt mehrere Ordner?
Auch kein Problem!
(und so weiter... )
Dann werden alle Ordner nacheinander weg herüberkopiert und Ruhe.
Jetzt möchte man aber vermutlich immer den Abschluss des Kopiervorganges sehen, das ist dann etwas doof, wenn zich tausend Dateien durchgejagt werden.
Also: Pause! .. Nein, jetzt nicht für uns, auch wenn ein Käffchen immer gut ist
Damit bleibt das Fenster auch nach Abschluss des letzten Kopiervorganges offen - nicht unpraktisch.
Jetzt wird es interessant - wechselnde Laufwerksbuchstaben berücksichtigen:
Dazu muss erst einmal abgefragt werden, wohin das ganze soll, das geht über eine Variable und geht dann so:
Das '@echo' erzeugt eine Ausgabe im prompt - in dem Fall ein 'Sicherungsziel?' während das darauffolgende 'set /p Ziel=' eine Variable Ziel anlegt und den eingetragenen Wert darauf zuweist.
Diesen Wert kann man dann über %Ziel% wieder abrufen.
Das sieht dann so aus:
Somit kann als Ziel ein Pfad angegeben werden, im simpelsten Fall also nur ein Laufwerk, wie z.B. 'X:' oder bei Belieben noch ein Ordner dazu, wie 'X:\Backup'
Weitere zu sichernde Ordner können einfach mit angefügt werden.
Optionen
Wer alles haben will, kann sich einfach 'robocopy -?' aufrufen, ich liste hier nur, was lohnenswert ist für solch einen Backup-Job.
/S - Unterverzeichnisse kopieren, leere Verzeichnisse überspringen
/E - Unterverzeichnisse kopieren, leere Verzeichnisse beibehalten
/Purge - Daten, die im Quellverzeichnis gelöscht wurden auch aus Zielverzeichnis entfernen - Hier ist Vorsicht geboten! Wenn man hiermit an wichtige Daten geht, sollte man lieber mit Testjobs prüfen, ob wirklich alles sauber klappt.
/Mir - Kombination aus /E und /Purge um eine Verzeichnisstruktur zu spiegeln
/Move - gesamtes Quellverzeichnis nach dem Kopieren entfernen
/L - für die Testjobs, es wird nur protokolliert, der tatsächliche Datenbestand wird nicht angerührt
Falls beim testen bestimmte Zeilen stören (weil z.B. ein großer Datenbestand durchgeackert wird), aber man diese nicht löschen will, kann ein REM davorgesetzt werden, dann zählt diese Zeile als Kommentar.
Beispiel
Das Script für meinen Kram sieht jetzt so aus:
Ich habe /S /Purge, da leere Unterverzeichnisse nicht grundlos leer sind - damit müssen diese nicht kopiert werden. Also, weg damit.
Robocopy unter XP nachinstallieren
Zuerst wird natürlich die entsprechende Datei benötigt. Klingt logisch, oder?
Diese kann zB aus den Windows Server 2003 Resource Kit Tools entnommen werden - die RKTs gibts direkt bei MS Klickmichhart!
Entweder wird jetzt das gesamte Paket installiert oder aber die robocopy.exe extrahiert und unter C:\Windows eingefügt. Anschließend sollte es auch problemlos möglich sein, die hier aufgeführten Scripts zu benutzen.
vielleicht kann ja wer noch Nutzen draus ziehen, ich hab's mir jetzt ohnehin zusammengesucht...
Vorgeplänkel:
Da ich mehrere Verzeichnisse mit Bildern habe, die auf eine externe Festplatte synchronisiert werden sollen, musste eine einfache Lösung dafür her.
Mir reicht dabei ein ordnerweises Abgleichen, da muss kein supertoller komprimierter, verschlüsselter Container geschrieben werden.
Robocopy
Das ist ein kleines Kommandozeilentool, das bei Windows Vista und 7 enthalten ist - damit lässt sich sowas relativ gut erschlagen.
Bei Windows XP muss es nachinstalliert werden, das ist aber auch kein großes Problem. (Hierzu ganz am Ende)
robocopy ist eigentlich auch nur ein besseres copy - es lassen sich eben ein paar mehr Feinheiten mit einstellen.
Aufgepasst und mitgebaut
Das beißt nicht, keine Sorge.
Eine Batch-Datei kann mit jedem Texteditor angelegt werden, man muss nur beim Speichern die Endung auf .cmd oder .bat setzen, oder wenn das nicht klappt, als .txt speichern und anschließend die Endung anpassen.
Dann wird im Endeffekt mit einem Doppelklick auf die Datei das Backup gestartet - viel komfortabler geht's nicht.
Wenn es nur drum geht, einen Ordner auf ein bestimmtes Laufwerk zu sichern, ist das kein Hit, dann muss in der Datei nur folgendes stehen:
Code:
ROBOCOPY <Quelle> <Ziel> [Optionen]
'robocopy' ruft die Funktion auf, dann werden Quell- und Zielordner (bzw. -dateien) angegeben und am Schluss können dann weitere Optionen angefügt werden, dazu ein wenig am Schluss.
Also, es gibt mehrere Ordner?
Auch kein Problem!
Code:
ROBOCOPY <Quelle1> <Ziel1> [Optionen]
ROBOCOPY <Quelle2> <Ziel2> [Optionen]
Dann werden alle Ordner nacheinander weg herüberkopiert und Ruhe.
Jetzt möchte man aber vermutlich immer den Abschluss des Kopiervorganges sehen, das ist dann etwas doof, wenn zich tausend Dateien durchgejagt werden.
Also: Pause! .. Nein, jetzt nicht für uns, auch wenn ein Käffchen immer gut ist
Code:
ROBOCOPY <Quelle1> <Ziel1>
Pause [Optionen]
ROBOCOPY <Quelle2> <Ziel2> [Optionen]
Pause
Jetzt wird es interessant - wechselnde Laufwerksbuchstaben berücksichtigen:
Dazu muss erst einmal abgefragt werden, wohin das ganze soll, das geht über eine Variable und geht dann so:
Code:
@echo Sicherungsziel?
set /p Ziel=
Das '@echo' erzeugt eine Ausgabe im prompt - in dem Fall ein 'Sicherungsziel?' während das darauffolgende 'set /p Ziel=' eine Variable Ziel anlegt und den eingetragenen Wert darauf zuweist.
Diesen Wert kann man dann über %Ziel% wieder abrufen.
Das sieht dann so aus:
Code:
@echo Sicherungsziel?
set /p Ziel=
ROBOCOPY <Quelle> %Ziel%\<eventuelle Unterordner> [Optionen]
Pause
Somit kann als Ziel ein Pfad angegeben werden, im simpelsten Fall also nur ein Laufwerk, wie z.B. 'X:' oder bei Belieben noch ein Ordner dazu, wie 'X:\Backup'
Weitere zu sichernde Ordner können einfach mit angefügt werden.
Optionen
Wer alles haben will, kann sich einfach 'robocopy -?' aufrufen, ich liste hier nur, was lohnenswert ist für solch einen Backup-Job.
/S - Unterverzeichnisse kopieren, leere Verzeichnisse überspringen
/E - Unterverzeichnisse kopieren, leere Verzeichnisse beibehalten
/Purge - Daten, die im Quellverzeichnis gelöscht wurden auch aus Zielverzeichnis entfernen - Hier ist Vorsicht geboten! Wenn man hiermit an wichtige Daten geht, sollte man lieber mit Testjobs prüfen, ob wirklich alles sauber klappt.
/Mir - Kombination aus /E und /Purge um eine Verzeichnisstruktur zu spiegeln
/Move - gesamtes Quellverzeichnis nach dem Kopieren entfernen
/L - für die Testjobs, es wird nur protokolliert, der tatsächliche Datenbestand wird nicht angerührt
Falls beim testen bestimmte Zeilen stören (weil z.B. ein großer Datenbestand durchgeackert wird), aber man diese nicht löschen will, kann ein REM davorgesetzt werden, dann zählt diese Zeile als Kommentar.
Beispiel
Das Script für meinen Kram sieht jetzt so aus:
Code:
@echo Sicherungsziel?
set /p Ziel=
robocopy E:\Bilder\ %Ziel%\Bilder\ /S /Purge
pause
robocopy E:\Lightroom\ %Ziel%\Lightroom\ /S /Purge
pause
robocopy E:\Scans\ %Ziel%\Scans\ /S /Purge
pause
Robocopy unter XP nachinstallieren
Zuerst wird natürlich die entsprechende Datei benötigt. Klingt logisch, oder?
Diese kann zB aus den Windows Server 2003 Resource Kit Tools entnommen werden - die RKTs gibts direkt bei MS Klickmichhart!
Entweder wird jetzt das gesamte Paket installiert oder aber die robocopy.exe extrahiert und unter C:\Windows eingefügt. Anschließend sollte es auch problemlos möglich sein, die hier aufgeführten Scripts zu benutzen.
Zuletzt bearbeitet: