Hallo Liste, auf diversen Dosen setzte ich folgendes kleines Backup-Skript aus der c't ein: set Quelle="C:\Dokumente und Einstellungen" set Ziel="D:\Backup\%date%" set templog="%temp%\temp.log" ; echo . >>%windir%\backup.log echo Starte Backup: %date% %time% von %Quelle% nach %Ziel%
%windir%\backup.log md %Ziel% xcopy %Quelle% %Ziel% /m /s /v /c /i /f /h /k /o /x /y >>%windir%\backup.log echo Starte Überprüfung >>%windir%\backup.log start /w windiff.exe -Sdx %templog% -T %Ziel% %quelle% find "different" %templog% >>%windir%\backup.log echo Fertig >>%windir%\backup.log start notepad.exe %windir%\backup.log ; rem Erstellt 2003 von Axel Vahldiek / c't rem mailto: axv@ctmagazin.de
Mit dieser Schlicht-Lösung ist sogar ein inkrementelles Backup möglich! Basis ist der xcopy-Befehl, den ich hier nebst Parametern aufgeführt habe: XCOPY Quelle [Ziel] [/A | /M] [/D[:Datum]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/EXCLUDE:Datei1[+Datei2][+Datei3]...] Quelle Die zu kopierenden Dateien. Ziel Position und/oder Name der neuen Dateien. /A Kopiert nur Dateien mit gesetztem Archivattribut, ändert das Attribut nicht. /M Kopiert nur Dateien mit gesetztem Archivattribut, setzt das Attribut nach dem Kopieren zurück. /D:M-T-J Kopiert nur die an oder nach dem Datum geänderten Dateien. Ist kein Datum angegeben, werden nur Dateien kopiert, die neuer als die bestehenden Zieldateien sind. /EXCLUDE:Datei1[+Datei2][+Datei3]... Gibt eine Liste von Zeichenfolgen an. Jede Zeichenfolge sollte in einer einzelnen Zeile in der Datei angezeigt werden. Wenn eine der Zeichenfolgen Teil des absoluten Verzeichnispfads der zu kopierenden Datei ist, wird diese Datei vom Kopiervorgang ausgeschlossen. Beispiel: Bei der Zeichenfolge \obj\ oder .obj werden alle Dateien unterhalb des Verzeichnisses OBJ bzw. alle Dateien mit der Erweiterung .obj vom Kopiervorgang ausgeschlossen. /P Fordert vor dem Erstellen jeder Zieldatei eine Bestätigung. /S Kopiert Verzeichnisse und Unterverzeichnisse, die nicht leer sind. /E Kopiert alle Unterverzeichnisse (leer oder nicht leer). Wie /S /E. Mit dieser Option kann die Option /T geändert werden. /V Überprüft jede neue Datei auf Korrektheit. /W Fordert vor dem Beginn des Kopierens zu einem Tastendruck auf. /C Setzt das Kopieren fort, auch wenn Fehler auftreten. /I Falls Ziel nicht vorhanden ist und mehrere Dateien kopiert werden, nimmt XCOPY an, dass das Ziel ein Verzeichnis ist. /Q Zeigt beim Kopieren keine Dateinamen an. /F Zeigt die Namen der Quell- und Zieldateien beim Kopieren an. /L Listet die Dateien auf, die ggf. kopiert werden. /G Ermöglicht das Kopieren von verschlüsselten Dateien auf ein Ziel wo Verschlüsselung nicht unterstützt wird. /H Kopiert auch Dateien mit den Attributen 'Versteckt' und 'System'. /R Überschreibt schreibgeschützte Dateien. /T Erstellt die Verzeichnisstruktur, kopiert aber keine Dateien. Leere oder Unterverzeichnisse werden nicht kopiert. Um auch diese zu kopieren, müssen Sie die Optionen /T /E angeben. /U Kopiert nur Dateien, die im Zielverzeichnis vorhanden sind. /K Kopiert Attribute. Standardmäßig wird 'Schreibgeschützt' gelöscht. /N Beim Kopieren werden die erzeugten Kurznamen verwendet. /O Kopiert Informationen über den Besitzer und ACL. /X Kopiert Dateiüberwachungseinstellungen (bedingt /O). /Y Unterdrückt die Aufforderung zur Bestätigung, dass eine vorhandene Zieldatei überschrieben werden soll. /-Y Fordert zur Bestätigung auf, dass eine bestehende Zieldatei überschrieben werden soll. /Z Kopiert Dateien in einem Modus, der einen Neustart ermöglicht. Die Option /Y kann in der Umgebungsvariable COPYCMD vordefiniert sein. Sie kann mit /-Y in der Befehlszeile deaktiviert werden. Mangels Archiv-Bit lässt sich dieses Skript kaum 1 zu 1 nach Linux übertragen. Kennt jemand (trotzdem) eine ähnlich schlichte Lösung? Hinweis: Es sollen keine monolithischen tar.gz-Monster entstehen. Kompression soll allenfalls optional auf Ebene der Einzel-Dateien erfolgen. Nette Grüße Bernhard Vornefeld