Python Befehl. Ordner A nach Pfad X kopieren

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen!

    Ich habe mir mit einem Raspberry 2 und zwei angeschlossenen externen Festplatten unter Raspian ein NAS gebastelt. Aktuell grübel ich noch über die beste Umsetzung des Backups.

    Auf Festplatte 1 habe ich einen Veracrypt Container mit einer Größe von ca. 8GB. Diesen würde ich nun gerne regelmäßig auf Festplatte 2 automatisch durch den Raspberry sichern lassen.
    Das Problem bei den beiden genannten Lösungen ist allerdings, dass ein inkrementielles Backup nicht funktioniert, da nicht erkannt wird, dass der Veracrypt container verändert wurde. Mir schwebt eine vom Gedanken her einfache Lösung vor:

    Ich erstelle auf der Backupplatte vier Ordner A,B,C,D.

    Als nächstes erstelle ich vier Pythonskripte, welche jeweils eine Kopie des Containers in den Ordner A,B,C bzw. D erstellen. Optimal wäre natürlich, wenn automatisch zunächst der Inhalt des Ordners gelöscht werden würde

    Diese vier Skripte automatisierte ich nun mithilfe von cronjob jeweils um eine Woche versetzt alle vier Wochen. Dadurch würde ich immer Zugriff auf die vier letzten Versionen haben falls mal was schief läuft.

    Mein einziges Problem ist, dass ich mir schwer tue diese relativ einfache Aufgabe mithilfe eines Python-Skriptes umzusetzen.

    Könnt ihr mir da ein bisschen Starthilfe geben? Links zu einer Übersicht von Grundlegenden Befehlen bzw. vllt zu einem Skript was schon so ähnlich funktioniert? Ich bin schon auf das [Tutorial] Raspberry Pi als NAS / Backupserver von Pi31415 gestoßen Punkt 4.2a.
    Reicht es, wenn ich dann da nur Quell- und Zielverzeichnis anpasse? Oder habe ich dann wieder das Problem, das rsync den veränderten Container nicht erkennt?

    Vielen Dank für eure Hilfe!

  • Hallo,

    Zitat

    Mein einziges Problem ist, dass ich mir schwer tue diese relativ einfache Aufgabe mithilfe eines Python-Skriptes umzusetzen.


    Was hast du denn bisher? Es ist _wesentlich_ einfach zu helfen und Tipps zu geben, wenn du deinen Code zeigst.

    Vom Vorgehen her würde ich auch _ein_ Skript nehmen - sonst hast du 4x quasi den gleichen Code - und den Zustand, als ob zuletzt A, B, C oder D gesichert wurde, in eine Datei schreiben.

    Beim Entwickeln würde ich das so machen, dass erst mal eine kleine Datei gesichert wird. Wenn das funktioniert ist die Umstellung auf die Container-Datei ja auch kein Akt mehr.

    Gruß, noisefloor

  • Warum möchtest du überhaupt 4x die selbe Datei sichern?

    Wenn du selbst schon schreibst "inkrementielles Backup nicht funktioniert, da nicht erkannt wird, dass der Veracrypt container verändert wurde. " dann wird rsync vom Container auch nichts werden.

    Aber wie gesagt frage ich mich wieso du jede Woche deinen Container sichern möchtest beziehungsweise die letzten 3 Sicherungen aufbewahren willst? Welchen Hintergrund hat das?

    Du könntest es zum Beispiel so probieren das du erst den Container von einer Festplatte auf die andere kopierst - das wäre eine einmalige Aktion. Dann auf Festplatte-A den Container mountest und auf Festplatte-B ebenfalls, dann jagst du rsync über die Dateien im Container-A und anschließend umountest du die beiden Container wieder. Auf die Weise würde nur der Inhalt der Container gesichert werden und dann auch nur die Dateien die sich verändert haben - nicht jedes mal ganze 8GB

  • Indirekt schon, es sei denn es fallen beide Festplatten aus, oder nachdem die erste ausgefallen ist wird nicht schnell genug eine neue eingespannt :fies:
    RAID1 bietet die größtmögliche Datensicherheit und Verfügbarkeit, ist zugleich aber auch die teuerste Variante: Es halbiert sich dadurch der verfügbare Speicherplatz. Zwei Festplatten mit jeweils 500 GB wären zusammen 1 TB. Weil RAID 1 die Daten spiegelt sind aber nur 500 GB verfügbar.

    Allerdings verursacht Software RAID mehr CPU Last und würde beim Pi auch die anderen USB Ports sowie LAN massiv ausbremsen.

    • Offizieller Beitrag

    Durch eine Spiegelung ist ein Raid de facto eine Datensicherung. Selbst das Kopieren in einen anderen Ordner ist eine, wenn auch keine Gute. Das man auf dem Pi keine Performancewunder erwarten darf, sollte klar sein. ;). Bei 8GB sollten sich die Kosten in Grenzen halten.

  • RAID1 ist eher eine "Betriebssicherung" als eine Datensicherung. Du sicherst den laufenden Betrieb durch Doppelung der aktuellen Daten. Eine Datensicherung, geschweige denn ein Backup, ist es nicht: löscht du im RAID1 eine Datei, so ist sie kurz darauf weg (auf beiden Platten). Spiegelung hin oder her, du hast kein Zugriff auf alte Datenbestände.

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • Code
    # crontab
    15  08  1-7 * 1  rm /path/A/* ; cp container /path/A/
    15  08  8-14 * 1  rm /path/B/* ; cp container /path/B/
    15  08  15-21 * 1  rm /path/C/* ; cp container /path/C/
    15  08  22-31 * 1  rm /path/D/* ; cp container /path/D/


    Evtl statt unschönem "rm ...;cp.." "rsync -u --delete-before ..."

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (12. Oktober 2016 um 14:41)

  • Hallo wieder!

    Vielen Dank für eure Antworten! Ich bin momentan beruflich ziemlich eingespannt. Hoffe aber nächstes Wochenende eure Vorschläge mal ausprobieren zu können.
    @ meigrafd: Ich möchte die in dem Container gesicherten Dateien wirklich sicher aufbewahren und zusätzlich verhindern, dass ich ausversehen eine Datei lösche und dann nicht mehr herstellen kann (deswegen die 4 zeitlich versetzten Versionen) Zusätzlich möchte ich nicht im Skript das passwort für meinen Container speichern müssen. Dafür nehme ich dann auch in Kauf, dass ich jedes mal den gesamten Container kopieren muss und nicht nur die veränderten Dateien sichern kann.

    llutz: vielen Dank, probiere ich aus sobald ich Zeit finde!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!