Batch als Generationenbackup mit Robocopy
Hallo Administratoren,
ich hätte da ein Problem
Bisher habe ich meine Datensicherung mit Allways Sync (Lifetime Lizens) gemacht. Dies wurde aber an Sibersystems verkauft und die bieten Ihre "Lösung Goodsync" nur noch als jährliche Kauflizens an
.
Durch stöbern im Internet bin ich da auf Robocopy gestoßen. Auch habe ich hier gelesen was eine Batch alles kann. Mir ist die Kinnlade auf den Tisch gefallen und ich bin ganz ehrlich, ich verstehe es nicht was da alles gemacht wird. Bin da nun komplett auf euer Wohlwollen angewiesen.
Was habe ich vor:
Durch das Stöbern bin ich auf auf das System des Generationenbackups gestoßen was mir sehr zuspricht.
Ich würde gerne haben das das Script folgendes macht.
Von Montag wird ein tägliche Sicherung der Ordner gemacht - T1-T4. T1-T4 werden in der folgenden Woche überschrieben.
Freitag wird eine Wochenbackup erstellt - W1-W3. W1-W3 werden wieder überschrieben wenn sie wieder dran sind.
In der letzten Woche wird nun ein Monatsbackup W1-W12 erstellt, die auch erhalten bleiben. Wobei T, W und M das aktuelle Datum enthalten.
Gesichert wird auf eine Synology NAS.
Ich will versuchen alles mit Bordmittel zu erledigen. Ich habe es schon geschafft mittels Aufgabenplanung mein Thunderbird portable zu kopieren. Will versuchen nun eine für mich brauchbare Backuplösung nur mit Windows Bordmittel zu erreichen.
Stimmt nicht ganz, ich setzte USBDLM ein um bei einem erfolgreichen Verbinden des NAS mittels RaiDrive (von Synology empfohlen) ein Skript zu starten. Das funktioniert auch. Da habe ich in der Aufgabenplanung nicht derart gefunden.
Und nun sage ich mal ganz lieb Bitte, Bitte.
Gruß
Bernd
ich hätte da ein Problem
Bisher habe ich meine Datensicherung mit Allways Sync (Lifetime Lizens) gemacht. Dies wurde aber an Sibersystems verkauft und die bieten Ihre "Lösung Goodsync" nur noch als jährliche Kauflizens an
Durch stöbern im Internet bin ich da auf Robocopy gestoßen. Auch habe ich hier gelesen was eine Batch alles kann. Mir ist die Kinnlade auf den Tisch gefallen und ich bin ganz ehrlich, ich verstehe es nicht was da alles gemacht wird. Bin da nun komplett auf euer Wohlwollen angewiesen.
Was habe ich vor:
Durch das Stöbern bin ich auf auf das System des Generationenbackups gestoßen was mir sehr zuspricht.
Ich würde gerne haben das das Script folgendes macht.
Von Montag wird ein tägliche Sicherung der Ordner gemacht - T1-T4. T1-T4 werden in der folgenden Woche überschrieben.
Freitag wird eine Wochenbackup erstellt - W1-W3. W1-W3 werden wieder überschrieben wenn sie wieder dran sind.
In der letzten Woche wird nun ein Monatsbackup W1-W12 erstellt, die auch erhalten bleiben. Wobei T, W und M das aktuelle Datum enthalten.
Gesichert wird auf eine Synology NAS.
Ich will versuchen alles mit Bordmittel zu erledigen. Ich habe es schon geschafft mittels Aufgabenplanung mein Thunderbird portable zu kopieren. Will versuchen nun eine für mich brauchbare Backuplösung nur mit Windows Bordmittel zu erreichen.
Stimmt nicht ganz, ich setzte USBDLM ein um bei einem erfolgreichen Verbinden des NAS mittels RaiDrive (von Synology empfohlen) ein Skript zu starten. Das funktioniert auch. Da habe ich in der Aufgabenplanung nicht derart gefunden.
Und nun sage ich mal ganz lieb Bitte, Bitte.
Gruß
Bernd
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6828236097
Url: https://administrator.de/forum/batch-als-generationenbackup-mit-robocopy-6828236097.html
Ausgedruckt am: 14.04.2025 um 03:04 Uhr
3 Kommentare
Neuester Kommentar
Moin,
Robocopy setze ich für einen digitalen Overnight-Kurier ein, damit nachts große Datenmengen durch unsere MPLS-Leitungen verschoben werden können und diese am Tag die Leitungen nicht zumachen.
Ich habe ein ähnliches Szenario mit erweitertem Archivcharakter und setze das mit VBScript und dem Kommandozeilenprogramm von 7-zip um:
Das Archiv aufräumen kannst Du auch in einem separaten Task erledigen.
Gruß
bdmvg
Robocopy setze ich für einen digitalen Overnight-Kurier ein, damit nachts große Datenmengen durch unsere MPLS-Leitungen verschoben werden können und diese am Tag die Leitungen nicht zumachen.
Ich habe ein ähnliches Szenario mit erweitertem Archivcharakter und setze das mit VBScript und dem Kommandozeilenprogramm von 7-zip um:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
' Backup folder using 7-Zip
' Written by Steve Allison 2014 - steve@allison.im
Dim fso, rs, shell
' File System Object
Set fso = CreateObject("Scripting.FileSystemObject")
' RecordSet
Set rs = CreateObject("Ador.Recordset")
' Shell
Set shell = CreateObject("WScript.Shell")
Const adVarChar = 200
Const adDate = 7
srcFolder="E:\RA\ZEIT"
dstFolder="E:\RAMDASIZEIT"
backupName="backup"
zipEXE="E:\DASI-Zeit\7za.exe"
' Number of files to keep
iNum = 15000
' Get the date in the correct order. Why does vbscript suck so hard at date formatting?
Function getDateString()
d = ZeroPad(Day(Now()), 2)
m = ZeroPad(Month(Now()), 2)
y = Year(Now())
getDateString = y & m & d
End Function
' No printf() in VBScript it seems
Function ZeroPad(int, length)
If Len(int) < length Then
ZeroPad = Right(String(length, "0") & int, length)
Else
ZeroPad = int
End If
End Function
' Sanity checking
If Not fso.FolderExists(srcFolder) Then
Wscript.Echo "Aborted. Source folder does not exist: " & srcFolder
Wscript.Quit
End If
If Not fso.FolderExists(dstFolder) Then
Wscript.Echo "Aborted. Destination folder does not exist: " & dstFolder
Wscript.Quit
End If
If Not fso.FileExists(zipEXE) Then
Wscript.Echo "Aborted. 7-Zip program does not exist: " & zipEXE
Wscript.Quit
End If
' Create suffix of date-time
backupFileDate = getDateString() & "-" & replace(FormatDateTime(now,4),":","")
' File extension
backupFileExt = ".7z"
' Backup path without extension
backupFilePre = dstFolder & "\" & backupName & "_" & backupFileDate
' Full backup path
backupFile = backupFilePre & backupFileExt
' More sanity checking
n = 1
Do While fso.FileExists(backupFile)
' Add integeer to file, loop until it doesn't already exist
backupFile = backupFilePre & "_" & ZeroPad(n, 2) & backupFileExt
n = n + 1
Loop
'''' Zip Source Folder
' Create shell command
shCommand = """" & zipEXE & """ a -r """ & backupFile & """"
' Change to source directory
shell.CurrentDirectory = srcFolder & "/"
' Run 7-Zip in shell
shVal = shell.Run(shCommand,4,true)
'WScript.Echo shCommand
' Check 7-Zip exit code
If shVal > 1 Then
Wscript.Echo "7-Zip failed with error code: " & shVal
Wscript.Quit
End If
' Wscript.Echo "Backup complete at " & backupFile
Das Archiv aufräumen kannst Du auch in einem separaten Task erledigen.
Gruß
bdmvg