Digikus Posted September 21, 2021 Share Posted September 21, 2021 Hallo Zusammen, nachdem ich einige Backup-Möglichkeiten ausprobiert habe und dank des tollen Supports hier, möchte ich gerne meine Backup-Routine hier an alle Einsteiger und Interessierte gerne zurück geben. Was war mein Ziel? Ich habe alle wichtigen Dokumente eingescannt und vernichtet, somit alles einzig nur noch digital. Diese wollte ich unbedingt nicht nur mit Snapshots auf einer Parity gesichert wissen, sondern zusätzlich verschlüsselt in einer cloud und auf wechselnden USB-Platten, die ich hin und wieder tausche und so automatisiert zusätzlich ein echtes "cold-backup" erzeuge. Dazu sollen natürlich auch die Appdata, VMs, boot-stick gesichert werden (können), wie ich es will. Bei Appdata sollen beispielsweise einzelne Dateiendungen ausgeschlossen werden um Platz zu sparen (Gameserver). Also eine one for all - Lösung. Meine Lösung besteht aus dem Docker "Luckybackup", das verschiedene Profile, Snapshots und sämtliche Zusatzfunktionen beherrscht, und aus drei Userscripts aufgerufen wird, die vorher entsprechend die Remotes oder UADs mounten und anschließend unmounten. Zu lokalen Backups muss ich denke nicht viel sagen, einfach Quellordner und Zielordner auswählen, Anzahl Snapshots, unter Erweitert mögliche exklusive Ausschlüsse und Einbezüge benennen und fertig. Anschließend oben mit dem Zeitplaner einen Zeitplan erstellen, "Konsolen-Modus" aktivieren, "in Cron-Datei eintragen", und "cron anzeigen" auswählen: Ergebnis: Das nun abschreiben, bzw. gegen mein Script überprüfen und anschließend den Zeitplan löschen und "in Cron-Datei eintragen" auswählen. sonst wird später doppelt ein backup gefahren. Lokal gibts da keine Probleme, aber bei uad und remote später ohne mounten sonst schon.. In den Userscripts nun ein neues Script anlegen und folgenden Inhalt übernehmen: #!/bin/bash #als root user ausführen #docker exec -i luckyBackup /usr/bin/luckybackup -c --no-questions --skip-critical /root/.luckyBackup/profiles/default.profile #als luckybackup user ausführen docker exec -i --user luckybackup luckyBackup /usr/bin/luckybackup -c --no-questions --skip-critical /luckybackup/.luckyBackup/profiles/default.profile sleep 20s Ich habe hier mal beide Befehle drin, einen für LuckyBackup eingestellt als User und einmal der Befehl als Root (wer boot/ zusätzlich sichern will z.B.). Nun zuerst in Luckybackup das Erste Backup erstellen, danach einmal das Userscript im Hintergrund ausführen und die Logs checken, der Zweite Log sollte dann so aussehen: Das Backup ist Inkrementell als Snapshot, im 2. Durchlauf wurden nur noch 4 Files geschrieben und 2 gelöscht. Auf Eurer Userscript-Seite könnt ihr nur den gewünschten Zeitplan hinterlegen, bei mir ist es z.B. jeden Tag um 2:30 Uhr: Damit ist das täglich lokale Backup aktiv. Natürlich würde lokal auch der Zeitplan in Luckybackup funktionieren, allerdings nur der lokale ohne mounten. Ich habe daher alle in den Userscrips, damit ich die Übersicht über alle Backups habe: Wie ihr seht habe ich insgesamt 7 Skripte angelegt, auf die restlichen gehe ich in den nächsten 2 Posts ein. Erst da wird es eigentlich interessant. 2 2 Quote Link to comment
Digikus Posted September 21, 2021 Author Share Posted September 21, 2021 (edited) Backups auf UADs Ich mache meine Backups immer nachts um 2:00 Uhr, damit ich sie am Tage jederzeit wechseln kann ohne vorher ins System zu gehen zum unmounten etc. Heißt was aus dem Keller holen oder Wäsche machen = Festplatte wechseln am Server. zum Einrichten in Luckybackup müssen die Unassigned Devices jedoch erst einmal gemountet werden. hierfür meine mount / unmount Skripts: Mount UAD - skript \#!/bin/bash \# 1TB Crucial SSD MX500 /usr/local/sbin/rc.unassigned mount /dev/disk/by-id/ata-CT1000MX500SSD1_xxxxxxxxxxxx \# 8TB Western Digital WD White /usr/local/sbin/rc.unassigned mount /dev/disk/by-id/ata-WDC*WD80EDAZ-xxxxxxxxxxxx \# 5TB Seagate 2,5" Portable /usr/local/sbin/rc.unassigned mount /dev/disk/by-id/ata-ST5000LM000-xxxxxxxxxxxx sleep 10s Die genaue Bezeichnung lässt sich ja auf der Main Page kopieren und hier einsetzen, anschließend im Hintergrund ausführen Natürlich lässt sich auch auf der Main Page per Mausklick mounten, aber wir brauchen das sowieso für das backup-skript gleich und so können wir das gleich Stück für Stück ausprobieren. Anschließend ist die / sind die Platte/n für Luckybackup sichtbar und ihr könnt ein neues Profil anlegen, bei mir ext_backup: . Hier habe ich bereits einige Backups für verschiedene Platten mit auch unterschiedlichen Inhalten angelegt. Anschließend analog zum 1.Post verfahren: - Backups anlegen - Zeitplan erstellen, in Cron-Datei eintragen - Inhalt Kopieren / mit dem Skript hier abgleichen - Zeitplan löschen, in Cron-Datei eintragen - Backup erstmalig ausführen in Luckybackup Nach dem erfolgreichen Backup, Luckybackup wieder schließen und das User-Skript zum unmounten erstellen und im Hintergrund ausführen: #!/bin/bash sync -f /mnt/disks/CT1000MX500SSD1_2xxxxxxxxxx sync -f /mnt/disks/WDC_WD80EDAZ-xxxxxxx_xxxxxxx sync -f /mnt/disks/ST5000LM000-xxxxxx_xxxxxxxxxx sleep 10s /usr/local/sbin/rc.unassigned umount /dev/disk/by-id/ata-CT1000MX500SSD1_xxxxxxxxxxxx /usr/local/sbin/rc.unassigned umount /dev/disk/by-id/ata-WDC_WD80EDAZ-xxxxx_xxxxxxx /usr/local/sbin/rc.unassigned umount /dev/disk/by-id/ata-ST5000LM000-xxxxxx_xxxxxxxx Jetzt legen wir das komplette Backup User-skript an: #!/bin/bash # 1TB Crucial SSD MX500 /usr/local/sbin/rc.unassigned mount /dev/disk/by-id/ata-CT1000MX500SSD1_20xxxxx # 8TB Western Digital WD White /usr/local/sbin/rc.unassigned mount /dev/disk/by-id/ata-WDC_WD80EDAZ-11xxxxxx # 5TB Seagate 2,5" Portable /usr/local/sbin/rc.unassigned mount /dev/disk/by-id/ata-ST5000LM000-2Axxxxxxxxxxx sleep 10s #luckybackup als root user ausführen #docker exec -i luckyBackup /usr/bin/luckybackup -c --no-questions --skip-critical /root/.luckyBackup/profiles/ext-backup.profile #luckybackup als luckybackup user ausführen docker exec -i --user luckybackup luckyBackup /usr/bin/luckybackup -c --no-questions --skip-critical /luckybackup/.luckyBackup/profiles/ext-backup.profile sync -f /mnt/disks/CT1000MX500SSD1_20xxxxxxxxxxxxxxx sync -f /mnt/disks/WDC_WD80EDAZ-1xxxxx-xxxxxx sync -f /mnt/disks/ST5000LM000-xxxxx_Wxxxxxxxx sleep 30s /usr/local/sbin/rc.unassigned umount /dev/disk/by-id/ata-CT1000MX500SSD1_2xxxxxxxxxxxxx /usr/local/sbin/rc.unassigned umount /dev/disk/by-id/ata-WDC_WD80EDAZ-1xxxxx_Vxxxxxxx /usr/local/sbin/rc.unassigned umount /dev/disk/by-id/ata-ST5000LM000-2xxxxxxxxx_xxxxxx Bei jedem Ausführen versucht nun Luckybackup alle UADs zu mounten, das backup zu machen und zu unmounten. Sollte eine UAD nicht zur Verfügung stehen, so wird das Backup dieser einen Platte mit einem Fehler übersprungen. Einmal im Hintergrund ausführen und nach den Logs schauen. Wichtig ist dass ihr während die Platten gemounted sind, nichts separat dort kopiert oder in Unterordner geht, dann wird die Platte u.u. nicht mehr automatisch geunmounted. Nun noch Zeitplan beim User-Skript hinterlegen und das war es schon. Funktioniert bei mir sehr zuverlässig, mit Abstand das schnellste Backup, dass ich probiert habe und dazu ist es sehr Platzsparend und einfach zu bedienen. Edited September 21, 2021 by Digikus 2 1 Quote Link to comment
Digikus Posted September 21, 2021 Author Share Posted September 21, 2021 (edited) Backup in Clouds oder verschlüsselt in Clouds An sich ist es ziemlich identisch zum Backup auf UADs, nur muss die Cloud gemounted werden und ein Verzeichnis angelegt werden. Hier bediene ich mich an rclone, aus den community apps. Man kann sich gut an das Tutorial von Spaceinvader One zum Einrichten der Clouds halten: How to use rclone in unRAID Copy sync and encrypt files to the cloud So können sämtliche Clouds gemountet werden, bei Spaceinvader wird es dauerhaft gemacht, ich gehe jetzt nur mal auf eine Cloud ein, die ebenfalls nur nachts gemountet wird, ein verschlüsseltes Backup macht und wieder unmountet. danach sollten euch alle Anpassungen möglich sein. In Luckybackup wieder ein neues Profil anlegen, bei mir "cloud" mount-user-skript #!/bin/bash mkdir -p /mnt/remotes/encrypt_backup #Connect to remote secure via rclone and mount it locally to mnt/remotes/encrypt_backup rclone mount --allow-non-empty --max-read-ahead 1024k --allow-other secure: /mnt/remotes/encrypt_backup & sleep 10s Im Hintergrund ausführen Nun Vorgehen analog zu 1. und 2. Post unmount-user-skript #!/bin/bash sleep 20s sync -f /mnt/remotes/encrypt_backup umount /mnt/remotes/encrypt_backup && rmdir /mnt/remotes/encrypt_backup ich habe meine magentacloud, da 25GB, als "secure" in rclone angelegt, die ich so nun lokal mounten kann. Nun noch das komplette Backup-Skript anlegen #!/bin/bash mkdir -p /mnt/remotes/encrypt_backup #Connect to remote secure via rclone and mount it locally to mnt/remotes/encrypt_backup rclone mount --allow-non-empty --max-read-ahead 1024k --allow-other secure: /mnt/remotes/encrypt_backup & sleep 10s #als root user ausführen #docker exec -i luckyBackup /usr/bin/luckybackup -c --no-questions --skip-critical /root/.luckyBackup/profiles/cloud.profile #als luckybackup user ausführen docker exec -i --user luckybackup luckyBackup /usr/bin/luckybackup -c --no-questions --skip-critical /luckybackup/.luckyBackup/profiles/cloud.profile sleep 20s sync -f /mnt/remotes/encrypt_backup umount /mnt/remotes/encrypt_backup && rmdir /mnt/remotes/encrypt_backup Wie oben im Hintergrund laufen lassen, checken, Zeitplan des User-Skripts anlegen und fertig. An dieser Stelle macht bitte ein Backup des Flash-Stick Sinn, da eure rclone.conf wichtig ist, damit ihr später wieder an eure verschlüsselten Daten kommt. Auch die User-Skripts werden so ins Backup vom Stick geschrieben. Ich habe zusätzlich in meiner Keepass Datenbank mir die Secrets aus der Unraid Oberfläche "Einstellungen-->Rclone" gesichert, was faktisch der Inhalt der rclone.conf ist und ich sie so nicht verlieren kann. Ich hoffe das hilft ein paar von euch, die noch eine gute Backuplösung im Step-by-Step Verfahren gesucht haben!! MfG digikus Edited September 21, 2021 by Digikus 1 1 Quote Link to comment
Digikus Posted September 21, 2021 Author Share Posted September 21, 2021 reserviert Quote Link to comment
Tuerlich Posted January 29, 2023 Share Posted January 29, 2023 Hi, Wo genau finde ich denn den Punkt Userscripts? Quote Link to comment
cz13 Posted January 29, 2023 Share Posted January 29, 2023 @Tuerlich wenn du das User Scripts Plugin installiert hast unter Settings bei User Utilities 1 Quote Link to comment
Tuerlich Posted January 29, 2023 Share Posted January 29, 2023 @cz13 DANKE! Der Hinweis hat mir gefehlt ...Sorry gerade frisch am einrichten, da sind noch nicht alle Sachen so klar! 1 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.