Backup.bat-Datei schreiben

sebi

Stammgast
Hallo, Leute, ich habe eine kleine Frage:

Ich habe in einem PC 2 Festplatten.
1 mit dem OS und einer Datenpartition.
1 als Backupplatte

Nun suche ich nach einem kleinen zuverlössigen und schlanken Programm, das mir die Sicherungen macht.
Ich habe da an eine .bat-datei gedacht, die im Autostart liegt und dann bei jedem start z.b. per xcopy alle daten auf die 2. Platte kopiert. Aber da das viele Daten sind (ca. 10 GB) geht das Kopieren sehr lange. Kann mir also jemand so was schreiben ?
Ich hab mir überlegt, dass das Programm dann die änderungsdaten anschaut und immer die neuere kopiert, aber die alte version behält ?

Falls das nicht geht, gibt es ein kleines Progrämmchen, das das auch kann ?

Ich hab mir schon so Backup-Programme angeschaut, aber da ich eigentlich nur so was simples brauche....
Es sollte auch nicht allzu schwierig zu bedienen sein und vor allem pflegeleicht, da es am PC meiner Mum läuft. :D

Danke schon mal :)
 

Supporter

PCtipp-Moderation
Teammitglied
Ich setze dafür bei meinen Kunden Robocopy ein. Ist ein Microsoft Tool, das sehr mächtig im kopieren ist. Dann aufrufen mit einer Batchdatei, mit mindestens dem Inhalt:
C:\Programme\Backup\robocopy.exe "D:\Daten" "U:\Backup\Daten" /E /R:0 /LOG:U:\Backup\backup.log /NDL /NJS /TEE
C:\Programme\Backup\robocopy.exe "C:\Dokumente und Einstellungen\Benutzername" "U:\Backup\Urs" /E /R:0 /LOG+:U:\Backup\backup.log /NDL /NJS /TEE /xF *.dat *.tmp *.log /XD temp*.* recent cookies
Drum herum lässt sich da eine ganz schöne Batchdatei schreiben. U: ist das Ziellaufwerk.
Schaus dir mal an. Gruss Supporter
 

POGO 1104

PCtipp-Moderation
Teammitglied
Robocopy ist natürlich ein sehr mächtiges Tool, wenn nich sogar DAS Tool dafür - braucht halt etwas Handarbeit drum herum...

Wers liebers mit einem GUI macht, der kann sich das Batch/Script mit der Maus zusammenklicken und sich dann ein Script/Desptopverknüpfung erzeugen lassen.

Früher hatte ich häufig DirSync im Einsatz, inzwischen bin ich jedoch überzeugt von PureSync. Bin halt zu faul für die Handarbeit ums Robocopy. (Gibt auch GUI's für Robocopy, Dr. Google weiss mehr dazu)

Ansonsten für die "Handarbeiter": http://www.wintotal.de/artikel/artikel-2007/91.html

gruss, o.s.t.
 
Zuletzt bearbeitet:

X5-599

Gesperrt
Gesperrt
Oder gleich Acronis True Image kaufen und dann nur die inkrementelle Sicherung (heisst glaube ich so) nehmen.

Und als Tipp, nimm keine interne Festplatte als Datenspeicher. Denn die läuft genau wie die normale Festplatte auch immer wenn der PC an ist. Das heisst sie wird genau gleich abgenutzt, untersteht den gleichen physikalischen Einflüssen usw.
Oder anders ausgedrückt, es könnte im Worst Case durchaus sein dass beide Platten zur gleichen Zeit kaputt gehen und dann bringt dir das Backup auch nichts. Wenn immer sollte sie auf einer externen Festplatte sein die nur angestöpselt wird wenn das Backup läuft.
 

Masche

Stammgast
Dann aufrufen mit einer Batchdatei, mit mindestens dem Inhalt:
...
C:\Programme\Backup\robocopy.exe "C:\Dokumente und Einstellungen\Benutzername" "U:\Backup\Urs" /E /R:0 /LOG+:U:\Backup\backup.log /NDL /NJS /TEE /xF *.dat *.tmp *.log /XD temp*.* recent cookies
Aber Supporter, ich dachte, bei Vista (welches sebi verwendet), gibt es keine "Dokumente und Einstellungen" mehr!

Ich verwende deshalb lieber an Stelle von "C:\Dokumente und Einstellungen\XXX" die Variablenkombination: "%HOMEDRIVE%%HOMEPATH%".

Zudem scheint mir immer noch XCOPY für den Verwendungszweck genügend. Wenn ich also das Verzeichnis "C:\Users\sebi\Documents" nach "U:\Backup\sebi" sichern will, so genügt:

xcopy "%HOMEDRIVE%%HOMEPATH%\Documents\*.*" "U:\Backup\%USERNAME%\" /S /M /C /Y /D
Übrigens, unter dem Webcode 47397 gibt es bei PCTipp eine gute Anleitung, wie man mit XCOPY Backups mit Logfile machen kann.
 

sebi

Stammgast
@all: DAnke für eure Hilfe.
@Masche: Da ich ja nur geänderte Dateien sichern möchte kommt hier leider xcopy nicht in frage.
@X5-599: Ich wollte eig nur ein schlankes Progrämmchen, und nicht gleich ein rundum-sorglos Paket. Vor allem, da letzteres nicht ganz gratis ist :D

Also müsste ich in meine Batch-Datei folgendes schreiben:

Code:
@echo off
robocopy "G:\Backup\Daten\" C:\dokumente und einstellungen\USER /COPYALL /LOG+:G:\Backup\backup.log /NP /V
und das dann als *.bat speichern und in den autostart legen.
Noch was: für was steht eigentlich dieses @echo und @echo off ?
Ich seh das immer, drum schreib ichs auch rein :)
 

Masche

Stammgast
@Masche: Da ich ja nur geänderte Dateien sichern möchte kommt hier leider xcopy nicht in frage.
Wie kommst du auf sowas? Hättest Du die Hilfe zu XCOPY studiert, so hättest Du auch gesehen, dass dieser Wunsch durch die angegebenen Kommandozeilenparameter gleich doppelt erfüllt wird:

/M: kopiert nur geänderte Dateien
/D: kopiert nur Dateien neueren Datums, falls diese auf dem Ziellaufwerk bereits vorhanden sind, und vermeidet damit genau das, was Du wünschst

Gerade den letzten Parameter (/D) habe ich bisher bei Robocopy vermisst, weshalb ich XCOPY immer noch bevorzuge. Aber vielleicht habe ich nur etwas übersehen. Kein Wunder bei der unübersichtlichen Menge an Kommandozeilenparametern bei Robocopy.

Noch was: für was steht eigentlich dieses @echo und @echo off ?
Auch das kannst Du in der Hilfe zum Befehl echo erfahren. Dieser alte DOS-Befehl, der aber auch unter W7 immer noch funktioniert, hat folgende Auswirkung:

Wenn Du ein einem DOS-Fenster ein Batchfile startest, so wird jede Zeile, die abgearbeitet wird, angezeigt. Bei der Erstellung der Batchfiles ist das sehr praktisch, beim Normalbetrieb aber eher störend. Mit "echo off" kannst Du diese Anzeige (das "Echo") ausschalten. Damit Du auch diese Befehlszeile "echo off" nicht siehst, wird die Ausgabe im Fenster durch das vorangestellte "@" unterdrückt, bevor der Befehl selber aktiv wird.
 

sebi

Stammgast
Ups, da habe ich mich wohl verlesen.
was meinste dazu ?

Code:
@echo off

xcopy "C:\dokumente und  einstellungen\USER\" "G:\Backup\Daten\"  /D /E /C /H /K > G:\ Backup\Logs\Log.txt
ich möchte die älteren Daten behalten, und sie bei bedarf selber löschen. Überschreibt nun das programm jedesmal die alten mit den neuen Daten ? Falls ja, wie kann ich das verhindern, z.b. dass das programm die neue Datei umbenennt und speichert ?
 

Masche

Stammgast
was meinste dazu ?
Für den Anfang nicht schlecht, aber noch verbesserungsfähig.

Zuerst nochmals zu den Dateipfaden. Für welches Betriebssystem brauchst du das Batchfile? So läuft es nämlich nur unter XP, weil es ab Vista keine "Dokumente und Einstellungen" mehr gibt. Wenn ich ein Batchfile schreibe, so möchte ich, dass es nicht nur für einen einzigen Verwendungszweck brauchbar ist sondern universell. Ich würde Dir deshalb empfehlen, wie schon früher beschrieben, mit Variablen (z.B. %HOMEPATH%) zu arbeiten.

Dann zu den Parametern:

Zu /D später mehr.
Zu /E: Weshalb willst Du auch leere Verzeichnisse sichern? Sinnvoller wäre daher /S.
Zu /H: Bei Datendateien gibt es keine versteckte Dateien ausser temporäre und Steuerdateien, welche es nicht Wert sind, zu sichern. Also kann man diesen Parameter weglassen.
Zu /K: Normalerweise wird bei schreibgeschützten Dateien beim Kopieren der Schreibschutz aufgehoben. /K verhindert dies. Ist aber meines Erachtens unnötig, weil ein Schreibschutz in einem Backup wenig Sinn macht.

Dann noch zu Deinen weiteren Wünschen:
Überschreibt nun das programm jedesmal die alten mit den neuen Daten ? Falls ja, wie kann ich das verhindern, z.b. dass das programm die neue Datei umbenennt und speichert ?
Die Antwort ist ja, die alten Dateien werden überschrieben. Dies einfach durch Umbenennen der kopierten Dateien verhindern ist problematisch, weil das Batchprogramm danach ja nicht mehr weiss, wie die Datei ursprünglich hiess. Es müsste dann schon eine Datenbank führen, was mit der Batchsprache unmöglich zu realisieren ist. Wenn die Dateinamen geändert werden, dann funktioniert auch der Parameter /D nicht mehr, weil dieser logischerweise nur bei gleichen Namen funktioniert. Besser wäre dann /M, weil dieser mindestens verhindert, dass eine gesicherte Datei nochmals gesichert wird, auch wenn sie gar nicht geändert wurde.

Ich würde Dir aber ein leicht modifiziertes Vorgehen empfehlen, welches bei mir übrigens seit über zehn Jahren erfolgreich im Einsatz ist. Statt die einzelnen Dateien umzubenennen, kopiere doch einfach die zu sichernden Dateien jeden Tag in einen separaten Ordner. So bleiben die alten Versionen der Dateien unberührt, wie Du schon in Deinem ersten Beitrag schrieben hast (" immer die neuere kopiert, aber die alte version behält").

Dies kann einfach mit der Datumsvariablen %DATE% realisiert werden, welche Du als Unterverzeichnis im Zielverzeichnis verwendest. Deine Befehlszeile würde dann wie folgt aussehen (die Parameter sind natürlich noch anzufügen):

xcopy "C:\dokumente und einstellungen\USER\" "G:\Backup\Daten\%DATE%\"

Als Resultat würden dann die Dateien von heute in das Verzeichnis G:\Backup\Daten\12.08.2010\ kopiert, die von morgen in G:\Backup\Daten\13.08.2010\ etc.
 
Oben