Backup Lösung für 3 Monate per robocopy
Hallo zusammen,
auf der Suche nach einer Backup Lösung bin ich auf folgenden Beitrag gestoßen:
Tägliche Vollsicherung per Batch mit Datum im Zielordner
Nun habe ich den Code wie folgt abgeändert..
ECHO OFF
REM Setze Verzeichnisse
SET SOURCE=C:\Backup [D]\Backup Laptop\Eigenes Business
SET DEST=C:\TempCopy
REM Erstelle Zielpfad, falls nicht vorhanden
if not exist "%Dest%"\%Date% Md "%DEST%"\%Date%
REM Kopiere Verzeichnis
xcopy "%SOURCE%" "%DEST%"\%Date% /c/s/r/d/y/i
REM Kopiere Daten von S2 nach S1
robocopy %DEST% i:/backup /mir
REM
set jahr=%date:~-4%
set monat=%date:~-7,2%
if %monat%==01 set "month=Dezember" && Set /a "jahr-=1"
if %monat%==02 set month=Januar
if %monat%==03 set month=Februar
if %monat%==04 set month=Maerz
if %monat%==05 set month=April
if %monat%==06 set month=Mai
if %monat%==07 set month=Juni
if %monat%==08 set month=Juli
if %monat%==09 set month=August
if %monat%==10 set month=September
if %monat%==11 set month=Oktober
if %monat%==12 set month=November
mkdir C:\Backup [D]\Backup Laptop\LX-Monatsbackups\%month%_%jahr%
xcopy C:\TempCopy\*.* "C:\Backup [D]\Backup Laptop\LX-Monatsbackups"\%month%_%jahr%\ /c/d/e/h/r/o/y
rd /s /q C:\TempCopy\
md C:\TempCopy
rd /s /q "C:\Backup\[D]"
rd /s /q C:\Backup\Laptop
Gerade die beiden letzten Zeilen scheinen mir recht unelegant.. Kann man das vielleicht geschickter lösen?
Im Übrigen würde ich es bevorzugen, nur die letzten 3 Monate zu sichern..,
Für Eure Hilfe schon mal besten Dank vorab!
Eric
auf der Suche nach einer Backup Lösung bin ich auf folgenden Beitrag gestoßen:
Tägliche Vollsicherung per Batch mit Datum im Zielordner
Nun habe ich den Code wie folgt abgeändert..
ECHO OFF
REM Setze Verzeichnisse
SET SOURCE=C:\Backup [D]\Backup Laptop\Eigenes Business
SET DEST=C:\TempCopy
REM Erstelle Zielpfad, falls nicht vorhanden
if not exist "%Dest%"\%Date% Md "%DEST%"\%Date%
REM Kopiere Verzeichnis
xcopy "%SOURCE%" "%DEST%"\%Date% /c/s/r/d/y/i
REM Kopiere Daten von S2 nach S1
robocopy %DEST% i:/backup /mir
REM
set jahr=%date:~-4%
set monat=%date:~-7,2%
if %monat%==01 set "month=Dezember" && Set /a "jahr-=1"
if %monat%==02 set month=Januar
if %monat%==03 set month=Februar
if %monat%==04 set month=Maerz
if %monat%==05 set month=April
if %monat%==06 set month=Mai
if %monat%==07 set month=Juni
if %monat%==08 set month=Juli
if %monat%==09 set month=August
if %monat%==10 set month=September
if %monat%==11 set month=Oktober
if %monat%==12 set month=November
mkdir C:\Backup [D]\Backup Laptop\LX-Monatsbackups\%month%_%jahr%
xcopy C:\TempCopy\*.* "C:\Backup [D]\Backup Laptop\LX-Monatsbackups"\%month%_%jahr%\ /c/d/e/h/r/o/y
rd /s /q C:\TempCopy\
md C:\TempCopy
rd /s /q "C:\Backup\[D]"
rd /s /q C:\Backup\Laptop
Gerade die beiden letzten Zeilen scheinen mir recht unelegant.. Kann man das vielleicht geschickter lösen?
Im Übrigen würde ich es bevorzugen, nur die letzten 3 Monate zu sichern..,
Für Eure Hilfe schon mal besten Dank vorab!
Eric
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 254970
Url: https://administrator.de/forum/backup-loesung-fuer-3-monate-per-robocopy-254970.html
Ausgedruckt am: 11.04.2025 um 17:04 Uhr
7 Kommentare
Neuester Kommentar
Und die Zielordner?
- angeschlossene Laufwerke, die gewechselt werden?
- Freigabe im Netzwerk?
Brauchst du das ganze privat oder beruflich? Beruflich würde ich bei der Ausgangslage nämlich eine Software empfehlen. Gibt gute Lösungen unter 100 €. Wenn Daten täglich gesichert werden müssen klingt das für mich schon sehr nach einer professionellen Ebene und ich persönlich würde da kein Backup via Robocopy einsetzen wollen.
- angeschlossene Laufwerke, die gewechselt werden?
- Freigabe im Netzwerk?
Brauchst du das ganze privat oder beruflich? Beruflich würde ich bei der Ausgangslage nämlich eine Software empfehlen. Gibt gute Lösungen unter 100 €. Wenn Daten täglich gesichert werden müssen klingt das für mich schon sehr nach einer professionellen Ebene und ich persönlich würde da kein Backup via Robocopy einsetzen wollen.
Also wenn schon Skript, dann nimm doch Powershell 
Was macht das Skript:
1. Es kopiert alle Daten aus dem Ordner D:\Test nach D:\Backup und schreibt die kopierten Daten nach D:\Backuplogs (alles Ordnerangaben)
2. Zeile 13 dient zum Erstellen des Ordners. Ohne den Befehl werden nur Dateien, aber keine Unterordner kopiert
3. Die Daten inkl. Unterordner werden kopiert und zwar in den Ordner mit dem heutigen Datum. Also D:\Backup1119 für heute. Die kopierten Daten werden in D:\Backuplogs\Backup_log1119.txt geschrieben
4. Alte Backups werden gelöscht, allerdings nur der Ordner der vor 90 Tagen angelegt wurde. Also heute wäre der Ordner D:\Backup0821 an der Reihe. 90 Tage wegen dem adddays(-90) in Zeile 09 und 10.
Mit etwas mehr Aufwand kann das Skript auch alle Ordner die älter als ein bestimmter Tag sind löschen. Und mit etwas mehr Aufwand kannst du auch verschiedene Pfade für verschiedene Ordner sichern. Dazu einfach die entsprechenden Zeilen kopieren, Variablen umbenennen und fertig (oder das Skript unter anderem Namen mehrfach Speichern). Ebenso fängt das Skript noch keine Fehler ab (zum Beispiel, wenn heute der Ordner nicht existiert (Zeile 19) oder der Ordner schon existiert (Zeile 13).
# Pfade angeben
$BackupZiel="D:\Backup"
$Zusichern="D:\Test"
$Bericht="D:\Backup_Logs"
#relevante Daten ermitteln
$month=get-date -uformat %m
$day=get-date -uformat %d
$old_day=("{0:dd}" -f (get-date).adddays(-90))
$old_month=("{0:MM}" -f (get-date).adddays(-90))
#Backupziel erstellen:
md $BackupZiel$month$day
#Daten kopieren:
Copy-item $Zusichern\* $BackupZiel$month$day -force -passthru > $Bericht\backup_log$month$day.txt
#Alte backups löschen
remove-Item $BackupZiel$old_month$old_day -recurse
Was macht das Skript:
1. Es kopiert alle Daten aus dem Ordner D:\Test nach D:\Backup und schreibt die kopierten Daten nach D:\Backuplogs (alles Ordnerangaben)
2. Zeile 13 dient zum Erstellen des Ordners. Ohne den Befehl werden nur Dateien, aber keine Unterordner kopiert
3. Die Daten inkl. Unterordner werden kopiert und zwar in den Ordner mit dem heutigen Datum. Also D:\Backup1119 für heute. Die kopierten Daten werden in D:\Backuplogs\Backup_log1119.txt geschrieben
4. Alte Backups werden gelöscht, allerdings nur der Ordner der vor 90 Tagen angelegt wurde. Also heute wäre der Ordner D:\Backup0821 an der Reihe. 90 Tage wegen dem adddays(-90) in Zeile 09 und 10.
Mit etwas mehr Aufwand kann das Skript auch alle Ordner die älter als ein bestimmter Tag sind löschen. Und mit etwas mehr Aufwand kannst du auch verschiedene Pfade für verschiedene Ordner sichern. Dazu einfach die entsprechenden Zeilen kopieren, Variablen umbenennen und fertig (oder das Skript unter anderem Namen mehrfach Speichern). Ebenso fängt das Skript noch keine Fehler ab (zum Beispiel, wenn heute der Ordner nicht existiert (Zeile 19) oder der Ordner schon existiert (Zeile 13).