alforno
Goto Top

Inkrementelles Backup mit Winrar - vorher Prozess beenden

Hallo,

ich möchte gerne mittels Winrar täglich einige hundert Mirosoft Office Dokumente sichern.
Meine Idee war, am Ende der Woche ein volles Backup zu fahren und die nächsten sechs Tage dann inkrementell.
Das ganze sollte mit Winrar realisiert werden.

Ich habe das Problem, dass ich vor dem Backup eine Anwendung per batch beenden muss.
Die Anwendung lässt sich leider nicht als Dienst implementieren.
Das ganze auf einem Windows 2000 Server.
Leider habe ich nichts passendes gefunden, taskkill funktioniert nicht, bzw. ist nicht vorhanden.
Wie kann man das auf einem Windows 2000 Server umsetzen?

Ich habe hier im Forum von bastla bereits einige Codeschnipsel erhalten, die auch einwandfrei laufen:
c:\programme\winrar\rar a -r -agYYYYMMDD_HHMM D:\S_ @d:\Liste.txt

Hiermit wird aber immer ein volles Backup durchgeführt, entsprechend der Pfade, die sich in der Liste.txt befinden.
Kann man diesen Code um das inkrementelle Backup erweitern?

Ich freue mich auf Antworten.
Danke im Voraus.

mfg
Alforno

Content-ID: 93293

Url: https://administrator.de/forum/inkrementelles-backup-mit-winrar-vorher-prozess-beenden-93293.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

67369
67369 31.07.2008 um 11:16:35 Uhr
Goto Top
bastla
bastla 31.07.2008 um 11:24:22 Uhr
Goto Top
Hallo Alforno!

Zum Beenden der Anwendung (hier am Beispiel des Windows-Rechners "calc.exe"):
@echo off & setlocal
set "P=calc.exe"  
set "K=%temp%\ProcKill.vbs"  
> %K% echo Set WMI=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
>>%K% echo Set Proc=WMI.ExecQuery("Select * from Win32_Process Where Name = '"^&WScript.Arguments(0)^&"'")  
>>%K% echo For Each P In Proc:P.Terminate:Next
cscript //nologo %K% "%P%"  

Ein inkrementelles Backup sollte so gehen:
c:\programme\winrar\rar a -r -ao -ac -agYYYYMMDD_HHMM D:\S_ @D:\Liste.txt
[Edit] Für eine Vollsicherung nur "-ac" ohne "-ao" verwenden [/Edit]

Grüße
bastla
Alforno
Alforno 31.07.2008 um 12:56:48 Uhr
Goto Top
@bastla

vielen Dank für den Code zum beenden der Anwendung.
Besteht auch die Möglichkeit zu überprüfen ob dies einwandfrei geklappt hat?

Die andere Frage beszieht sich auf das inkrementelle Sichern.
Wie erkennt winrar denn, ob eine komplette sicherung gemacht werden soll oder nur ein inkrementelles Backup.
Wie wird das miteinander verknüpft?

Danke im Voraus.

mfg
Alforno
bastla
bastla 31.07.2008 um 15:26:45 Uhr
Goto Top
Hallo Alforno!

Wie erkennt winrar denn, ob eine komplette sicherung gemacht werden soll oder nur ein inkrementelles Backup.
Wie in meinem Edit beschrieben ...

Für die inkrementelle Sicherung wird das Archiv-Attribut berücksichtigt ("-ao") - damit werden nur veränderte Dateien gesichert.

Bei beiden Sicherungsarten wird durch "-ac" das Archiv-Attribut gelöscht - damit wird die jeweilige Datei bei den inkrementellen Sicherungen erst wieder gesichert, wenn durch eine Veränderung der Datei (oder durch manuelles Setzen mit "attrib +a") dieses Attribut wieder gesetzt ist.
... beenden der Anwendung.
Besteht auch die Möglichkeit zu überprüfen ob dies einwandfrei geklappt hat?
Dazu könnte das Script (nach einer festgelegten Wartezeit - im Beispiel unten 2000 ms = 2 Sekunden) nochmals überprüfen, ob noch eine Instanz des Programmes läuft und dies mit einem Errorlevel > 0 anzeigen:
set "P=calc.exe"  
set "K=%temp%\ProcKill.vbs"  
> %K% echo Set WMI=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
>>%K% echo Set Proc=WMI.ExecQuery("Select * from Win32_Process Where Name = '"^&WScript.Arguments(0)^&"'")  
>>%K% echo For Each P In Proc:P.Terminate:Next:WScript.Sleep 2000
>>%K% echo WScript.Quit WMI.ExecQuery("Select * from Win32_Process Where Name = '"^&WScript.Arguments(0)^&"'").Count  
cscript //nologo %K% "%P%" || echo Nicht alle "%P%" beendet - Sicherung kann nicht erfolgen! & goto :eof  
echo Sicherung kann gestartet werden.
Grüße
bastla

[Edit] Fehlende ^ nachgetragen [/Edit]
Alforno
Alforno 31.07.2008 um 22:13:47 Uhr
Goto Top
@bastla

Vielen Dank für deine Mühe.

Ich habe meine Frage wohl etwas unglücklich formuliert.
Ich möchte gerne das die Sicherung immer Samstags um 04:00 Uhr als volles Backup durchläuft und dann bis zum nächsten Samstag sollen nur inkrementelle Sicherungen erstellt werden.

Wie realisiere ich das?
Kann ich das alles über den Task Planer machen, oder muss ich das in der Syntax berücksichtigen.

Nehmen wir mal an ich möchte an einem Mittwoch das Backup zurücksichern, wie gehe ich dann vor?
Muss ich die einzelnen Pakete dann rückwärts entpacken?

Danke für deine Mühe.

mfg
Alforno
bastla
bastla 31.07.2008 um 22:22:23 Uhr
Goto Top
Hallo Alforno!

Kann ich das alles über den Task Planer machen, oder muss ich das in der Syntax berücksichtigen.
Ja. face-wink

Gestartet wird natürlich über den Task-Planer, wobei Du am einfachsten 2 verschiedene Batches verwendest (die sich aber, wie oben beschrieben, eigentlich nur durch die zusätzliche Angabe von "-ao" beim Batch für die Inkrementsicherungen unterscheiden).
Nehmen wir mal an ich möchte an einem Mittwoch das Backup zurücksichern, wie gehe ich dann vor?
Muss ich die einzelnen Pakete dann rückwärts entpacken?
Die Rücksicherung muss in der selben Reihenfolge wie die Sicherung erfolgen, da ja die neueren Dateiversionen die älteren überschreiben müssen.

Grüße
bastla
Alforno
Alforno 31.07.2008 um 22:32:27 Uhr
Goto Top
Danke für die schnelle Antwort.

Meine Frage klingt zwar etwas doof, aber wie merkt sich Winrar, zu welchem vollen Backup die inkrementellen Sicherungen gehören?

Danke

mfg
Alforno
bastla
bastla 31.07.2008 um 22:43:45 Uhr
Goto Top
Hallo Alforno!

wie merkt sich Winrar, zu welchem vollen Backup die inkrementellen Sicherungen gehören?
Winrar muss sich nichts merken - die Rücksicherung führst ja Du durch ...

Konkret: Du hast etwa am Mittwoch die rar-Dateien vom Samstag (Vollsicherung), Dienstag (am Montag veränderte oder neu erstellte Dateien) und Mittwoch (am Dienstag veränderte/neu erstellte Dateien) - zu identifizieren anhand des Datums face-wink.

Zum Rücksichern entpackst Du die Vollsicherung - damit bist Du auf dem Stand von Samstag, 4:00 Uhr. Danach entpackst Du die Datei von Dienstag, 4:00 - damit werden die Änderungen von Montag nachvollzogen (die neuen Dateien hinzugefügt, die bereits am Samstag vorhandenen durch am Montag veränderte überschrieben), und abschließend kommen aus der Datei von Mittwoch, 4:00 noch die am Dienstag geänderten/erstellten Dateien dazu.

Grüße
bastla
Alforno
Alforno 11.08.2008 um 22:15:03 Uhr
Goto Top
Hallo bastla,

ich habe das Skript jetzt in die produktive Umgebung eingebunden.
Es kommen einige hundert Office Dateien zusammen, kann man solch einen batch hierfür überhaupt verwenden?

Außerdem würde ich gerne die Ausgaben am Monitor in eine log Datei schreiben.
Geht das?

Gibt es von winrar auch einen Statusbericht am Ende des Vorgangs?

Ich freue mich auf eine Antwort und bedanke mich schonmal im Voraus für deine Mühe.

mfg
Alforno