HanSolo: Datensicherung per Batch über gpedit.msc

Hallo,

ich nutze eine Batchdatei, um eine regelmäßig Datensicherung auf die zweite Festplatte meines PC's durchzuführen.

Damit ich nicht jeden Tag daran denken muss habe ich diese Sicherung automatisiert. Dazu habe ich beim Tool "gpedit.msc" unter "Windows-Einstellungen" ==> Skripts(Anmelden/Abmelden) ==> Abmelden eine Batchdatei hinterlegt, die dann immer beim Beenden ausgeführt wird.

Immer dann wenn ich meinen Rechner ausschalte werden die Daten somit gesichert, das Problem ist, das folgendes passieren kann:

Angenommen ich speichere Montags eine Exceldatei die täglich gesichert wird. Aus irgendeinem Grund läuft beim Speichervorgang etwas schief, so das die Datei anschließend nichtmehr geöffnet werden kann. Nun fahre ich den Rechner runter, dadurch wird die defekte Exceldatei auf die zweite Festplatte kopiert (die defekte wird überschrieben). Am nächsten Tag merke ich, dass ich die Exceldatei nichtmehr öffnen kann und möchte deshalb auf die Sicherung zurückgreifen, dass Problem ist, dass die Sicherung ja nun ebenfalls defekt wäre. Damit sind die Daten weg.

Was kann ich tun um diese Problem zu vermeiden bzw. zu umgehen.

Am besten wäre wenn Montags bis Freitags immer eine neue Sicherung gemacht würde. Die Sicherung der Vorwoche müßte dann immer überschrieben werden. Leider ist unter gpedit kein zeitgesteuertes ausführen von Batchdateien möglich. Den Aufgabenplaner kann ich auch nicht verwenden, da dort zwar Batchdateien beim Start von Windows ausgeführt werden können, jedoch nicht beim Beenden. Das Ausführen der Batchdatei beim Start möchte ich nicht nutzen, da ich dann u.U. bereits Dateien die gesichert werden sollen geöffnet habe (geöffnete Dateien werden nicht gesichert). Somit ist keine Sicherung möglich.

Könnt ihr mir helfen?

  1. Hallo HanSolo,

    leg doch einfach eine Reihe von Zwischensicherungen an, das kann alles in einer Batch laufen:

    Z-Sich07 -> Backup
    Z-Sich06 -> Z-Sich07
    Z-Sich05 -> Z-Sich06
       ...
    Z-Sich01 -> Z-Sich02
    Daten    -> Z-Sich01

    Gruß, Jürgen

    1. Hallo HanSolo,

      leg doch einfach eine Reihe von Zwischensicherungen an, das kann alles in einer Batch laufen:

      Z-Sich07 -> Backup
      Z-Sich06 -> Z-Sich07
      Z-Sich05 -> Z-Sich06
         ...
      Z-Sich01 -> Z-Sich02
      Daten    -> Z-Sich01

      Gruß, Jürgen

      Sorry ich hab grade ein Brett vorm Kopf, kannst Du mir das etwas geanuer erklären. Ich gibt doch nur eine Quelle, laut Deinem Beispiel sind es aber mehrer Quellen. Es soll nur mehrere Ziele geben.

      1. Hallo HanSolo,

        erst mal vorweg, in bin von einer täglichen incrementellen Sicherung ausgegangen.

        Z-Sich07 -> Backup
        Z-Sich06 -> Z-Sich07
        Z-Sich05 -> Z-Sich06
           ...
        Z-Sich01 -> Z-Sich02
        Daten    -> Z-Sich01

        Du hast einen Datensatz "Daten" und letztendlich ein Backup "Backup". Der Weg von den Daten zum Backup geht durch z.B. sieben Zwischensicherungen "Z-Sichx". Dazu wird die älteste Zwischesicherung ins BAckup gemoved, die zweitälteste in die älteste, dir drittälteste in die zweitälteste etc. Zuletzt werden die seit der letzten Sicherung geänderten Daten in die neueste Zwischensicherung kopiert. Das Moven von Z-Sich(n) nach Z-Sich(n+1) kann auch durch renamen erfolgen.

        Durch diesen Algorithmus ist ein Fehler erst nach einer Woche im finalen Backup. Ich habe meine Daten schon zu DOS-Zeiten mit diesem Algorithmus gesichert.

        Beim Rückschreiben nach einem Totalausfall musst du natürlich erst die Zwischensicherungen ins Backup bringen, bevor du alles zurückschreibst. Nachteil dieser Sicherung (ich mache das mit xcopy): gelöschte Dateien überleben im Backup. Daher mache ich in lockerer Folge ein zweites Backup mit robocopy und der Mirror-Option.

        Gruß, Jürgen

        1. ...
          ...
          ...

          Beim Rückschreiben nach einem Totalausfall musst du natürlich erst die Zwischensicherungen ins Backup bringen, bevor du alles zurückschreibst. Nachteil dieser Sicherung (ich mache das mit xcopy): gelöschte Dateien überleben im Backup. Daher mache ich in lockerer Folge ein zweites Backup mit robocopy und der Mirror-Option.

          Gruß, Jürgen

          Hört sich alles sehr gut an, kannst Du mir vielleicht trotzdem ein Quellcodebeispiel einer Batdatei an die Hand geben?

          Wäre super, dann würde mich das viel einfach fallen.

          Vielen Dank schonmal für Deine tolle Hilfe.

          1. Hallo HanSolo,

            schick mir eine Mail, dann mail ich dir die Batch zu.

            Gruß, Jürgen

          2. Hallo HanSolo,

            eine Möglichkeit wäre es deine Backups mit dem aktuellen Datum zuversehen.

            Diese Funktion "%DATE%" müsste dann mit in das Backupskript implementiert werden. So hättest du die Backups schon mal datiert.

            Um die älteren Backups loszuwerden könnte ich dir dieses hier mit an die Hand geben:

            set QUELLE="VERZEICHNIS ANGABE"
            set ZIEL="VERZEICHNIS ANGABE"

            for /f "skip=ANZAHL DER ZUBEHALTENDEN BACKUPS delims=" %%i in ('dir /a-d /b /o:-d VERZEICHNISANGABE + DATEIENNAME') do (
            move /Y %QUELLE%%%i %ZIEL%
            )

            Den Zielordner kannst du dann manuell oder auch automatisch löschen.

            Automatisch wäre z.B.

            set head_dir=VERZEICHNIS
            echo Lösche %head_dir% ...
            if exist %head_dir% rmdir /s /q %head_dir%
            md %head_dir%

            Hierbei löscht er deinen Ordner und erstellt diesen automatisch neu!

            Ich hoffe ich konnte etwas behilflich sein!

            Gruß