Backup-Skript

  • Neulich hatte ich in über mein kleines Leid mit Backups geschrieben und mich dann hingesetzt und ein kleines Skript geschrieben, dass effizient Backups von der QNAP (oder jedem Unix-Gerät mit PHP) erstellt. Ich poste das Genz unter einem neuen Titel - damit auch klar ist, worum es geht.


    Das Backup-Skript wurde in der Zwischenzeit deutlich überarbeitet und besteht nun aus zwei Teilen, einem Shell-Skript sowie dem eigentlichen Backup-Programm (beide sind downloadbar: http://mercator.li/blog/2010/1…-fast-and-reliable-backup, Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported Lizenz).


    Um das Ganze schnell zum Einsatz zu bringen, muss man lediglich im Shell-Skript ZWEI ZEILEN anpassen:


    Code
    SOURCE="/share/Qmultimedia /share/Public /share/Qrecordings /share/Qusb/ /share/Qweb"
    DESTINATION="/share/<PUT YOUR BACKUPDESTINATION HERE"


    SOURCE enthält alle Verzeichnisse, von denen ein Backup gemacht werden soll. DESTINATION zeigt auf das Verzeichnis, in welches das Backup erfolgen soll. Alle Verzeichnisse müssen zum Startzeitpunkt des Skripts existieren (wird geprüft und gegebenenfalls abgebrochen, wenn dies nicht der Fall ist).


    Nun muss man die Skripts nur noch aufs QNAP kopieren und starten (via SSH/telnet) und das Backup wird erstellt. Beim ersten Mal dauert es etwas länger, die nachfolgenden Backups gehen schnell. Anhaltspunkt: Die reine Überprüfung meiner QNAP-Shares mit rund 50’000 Fikes/500 GB auf neue und geänderte Files dauert auf der QNAP TS-119 knapp 40 Sekunden (ja, ich geb’s ja zu, das NAS casht ein wenig).


    Und wie nicht anders zu erwarten war: Ich übernehme keine Garantie/Gewährleistung für Eure Daten....


    Feedback nehme ich gerne entgegen.

  • Hallo Thomas

    Zitat von "Tommasito"

    Tolle Sache ! Geht das auch mit iSCSI Laufwerken ? ( siehe mein Forumbeitrag darüber).


    Ich verstehe von iSCSI zu wenig. Grundsätzlich sollte mein Skript überall fuktionieren, wo man ein Laufwerk mounten kann und mittels "cp" Daten "draufschieben" kann. Hlft das?


    Gruss
    Mercator

  • Danke Mercator, für deine ganze Arbeit und die Verfügungstellung des Scriptes. Ich kann damit leider meine Daten vom iscsi-Laufwerk nicht kopieren, aber trotzdem danke.


    Gruss und schönen Tag
    Thomas

  • Hi Thomas,


    iSCSI ist wieder eine etwas andere "Schiene".
    Im Prinzip müsste man so etwas auf einen 2ten NAS replizieren, weil iSCSI ja was ist, was durchaus ausfallen "darf". Oder besser, alles was nicht hochverfügbar sein muss.


    EDIT:
    Einen Link dazu habe ich gefunden:
    David Rühl / iSCSI


    Das wäre dann z.B. der Haken bei der Der Remote Replication (Sparse Files), wenn man das von NAS A nach NAS B schaffen würde...


    Du kannst es natürlich auch manuell via cp oder rsync auf einen externen Datenträger kopieren um mal 'nen Backup davon zu haben. (Den sparse Parameter jedoch nicht vergessen).


    EDIT:
    Das sollte auch behilflich sein:
    http://wiki.qnap.com/wiki/Replicate_iSCSI_LUN


    Grüsse, David

  • Hallo,


    ich will mich mal diesem Thread anschließen und mein Backup-Script ebenfalls freigeben. Der übliche Disclaimer (keine Garantie für Funktion) gilt auch hier. Feedback ist willkommen. Der wesentliche Unterschied zum Script von mercator ist, dass ich rsync verwende, um mehr als eine Version (derzeit: unbegrenzt viele) zu speichern. Auch gibt mein Script im Log etwas aus (habe ich im PHP von mercator so schnell nicht gefunden). Bei entsprechender Alert-Konfiguration bekommt man bei kritischen Dingen auch eine Mail...


    Die Verwendung im privaten Bereich gestatte ich ausdrücklich. Weil es so kurz ist, passt es auch in einen Block hier.



    Gesichert werden alle Freigaben (Shares), nicht das System. Für bare metal recovery ist das Script daher nicht geeignet. Durch die Sicherung entstehen Verzeichnisse mit Datumsstempel. Diese sind untereinander mit Hardlinks verbunden, weswegen meine 1 TiB-Platte auch für 30 oder so Sicherungen 475 GiB ausreicht. Siehe auch der Dokumentation zu rsync, insbesondere --link-dest.


    Zwei Dinge, die ich definitiv noch nicht probierte: Fehlerbehandlung bei rsync-Fehlschlag wurde nicht getestet. Ein weiteres Problem: wird das Script aufgerufen, während das initiale Backup (cp -a...) noch läuft, gibt das Probleme. Ich lasse es alle 24h laufen und hatte auch mit dem initialen Backup von 200GiB keine Probleme (4h, TS 409). Getestet wurde das Ganze auf einer TS 409.


    Viel Spaß,


    Tichy

  • Hallo


    Der Grund für die Nichverwendung von rsync ist einfach: rsync ist effizient für dünne Leitungen zu einer Offsite-Destination, nicht unbedingt für lokale Kopien.


    Wenn man in meinem Shellskript PARAMETERS auf -info 5 oder -info 10 setzt, bekommt man ebenfalls ein Protokoll. Die Idee mit dem Mail kam mir auch schon und ich denke, das gibt es dann in der nächsten Version.


    tichy: Apropos Versionen . kannman in deinem Skript auch Generationen löschen? Und wenn ja, wie?


    Gruss und Dank, Mercator

  • Zitat von "mercator"

    Hallo


    Der Grund für die Nichverwendung von rsync ist einfach: rsync ist effizient für dünne Leitungen zu einer Offsite-Destination, nicht unbedingt für lokale Kopien.


    Naja, über die Geschwindigkeit kann ich mich nicht beschweren: bei wenigen Änderungen (bei mir üblich) sind die Backups von 450 GiB in unter 10 Minuten erledigt -- das ist für mich in Ordnung und hat genug Spielraum.


    Zitat von "mercator"


    Wenn man in meinem Shellskript PARAMETERS auf -info 5 oder -info 10 setzt, bekommt man ebenfalls ein Protokoll. Die Idee mit dem Mail kam mir auch schon und ich denke, das gibt es dann in der nächsten Version.


    Wird das log_tool verwendet, landen die Messages automatisch in den System-Logs von der admin-Oberfläche. Das fand ich recht schick. Man kann unter "Alerts" oder ähnlich einstellen, ab welchem Level Mails verschickt werden sollen.


    Zitat von "mercator"


    tichy: Apropos Versionen . kannman in deinem Skript auch Generationen löschen? Und wenn ja, wie?


    Gruss und Dank, Mercator


    Das Script erzeugt stets komplette Verzeichniskopien, nur eben recht sparsam. Möchte man Platz sparen (nur sinnvoll nach umfangreichen Änderungen, sonst ist der Platzverbrauch minimal), so löscht man die Kopien vor den Änderungen manuell. Programme wie dirvish, RsyncBackup etc. machen das automatisch. Auch timemachine basiert ja auf rsync und löscht, wenn der Platz knapp wird... Das mit dem Löschen rüste ich vielleicht noch nach, wenn sich die Notwendigkeit ergibt. Dito automatisches mount/umount...


    In Deiner Lösung sah ich auch etwas von restore: das ist bei rsync natürlich einfach eine Kopie...


    Danke für die Anregung mit der Veröffentlichung :) ,


    Tichy