Manuelle Datensicherung vor Neuerstellung der Volumes

  • Zwei Monate nach dem Update auf 4.2 habe ich mich dazu entschlossen, meine Volumes neu aufzusetzen, um die neue Snapshot-Funktion nutzen zu können. Bisher lief meine Sicherung über die BackupStation auf eine externe Platte. Das war allerdings bisher immer sehr langsam. Bei jeder Sicherung wird erst mal 2-3 Stunden berechnet, was überhaupt kopiert werden soll. Ausserdem fand ich nicht besonders transparent, was überhaupt gesichert wird, was automatisch ausgeschlossen wird, ob Rechte mit übertragen werden oder nicht, etc...


    Deshalb habe ich zusätzlich ein manuelles Backup über die Konsole erstellt. Für folgende Anleitung übernehme ich keine Garantie, wer sich nicht mit Linux auskennt sollte unbedingt die Finger davon lassen.


    Code
    rsync -aAXv --exclude="@Recycle" --exclude=".@__thumb" --exclude="/.*" --exclude="/aquota.user" --exclude="container-station-data/lib/docker/devicemapper/" --delete --delete-excluded /share/CE_CACHEDEV1_DATA/ /share/BackupDisk


    Kurze Erläuterung zu den verwendeten Parametern:

    • "-a" steht für "Archiv", und bedeutet dass möglichst viele Informationen erhalten bleiben sollen (Benutzerrechte, etc)
    • Durch "-A" bleiben eventuell vorhandene "ACLs" (Access Control Lists) erhalten
    • "-X" erhält eventuell vorhandene erweitere Attribute
    • Mit "-v" werden mehr Details auf der Konsole ausgegeben (höhere "verbosity")
    • Mit "--delete" und "--delete-excluded" werden ALLE Dateien im Ziellaufwerk gelöscht die nicht im Quellordner vorhanden sind. SEHR GEFÄHRLICH wenn man sich nicht auskennt.


    Manuell ausgeschlossen habe ich...

    • ... den Netzwerk-Papierkorb: --exclude="@Recycle"
    • ... alle Thumbnails: --exclude=".@__thumb" (wobei ich mittlerweile der Meinung bin dass das keine so gute Idee war, weil mein QNAP jetzt schon seit zwei Tagen dabei ist alle Thumbnails neu zu erstellen, aber immerhin hat es das Restore wahrscheinlich vereinfacht)
    • ... alle Ordner aus dem Root-Verzeichnis deren Name mit "." anfängt: --exclude="/.*" (dazu gehören größtenteils Konfigurationsdateien für Apps, aber auch die MySQL-Datebank, sowie die TimeMachine-Backups. Hier sollte man sich also Gedanken machen ob man das will oder nicht! Mein Ziel war es wirklich nur die Shares zu sichern. Ansonsten den Parameter natürlich weg lassen und später beim Restore selektiv wieder alles an die richtige Stelle kopieren)
    • ... temporäre Dateien der ContainerStation: --exclude="container-station-data/lib/docker/devicemapper/"
    • ... die Quota-Datenbank: --exclude="/aquota.user"


    Quellvolumen war "/share/CE_CACHEDEV1_DATA/" und mein Ziellaufwerk war unter "/share/BackupDisk" eingebunden. Diese Parameter sind natürlich bei jedem unterschiedlich.


    Nach der ersten Sicherung habe ich alle Apps gestoppt und rsync ein zweites mal gestartet, bevor ich dann die alten Volumes definitiv gelöscht hab.


    Nachdem die Volumes neu aufgesetzt waren habe ich die Shares einzeln wieder angelegt und auch die Inhalte einzeln zurückkopiert:
    rsync -aAXv /share/BackupDisk/Public /share/CE_CACHEDEV1_DATA
    rsync -aAXv /share/BackupDisk/Download /share/CE_CACHEDEV1_DATA
    etc


    Vielleicht hilft diese Kurzanleitung ja jemandem der ähnliches probieren will.