Anym001 Posted February 2, 2021 Share Posted February 2, 2021 Hallo, ich möchte gerne das Backup Script von @mgutt bei meiner externen Festplatte hinterlegen. Sehe ich das richtig, das man ein spezielles Script fix zu einem Device zuordnen kann (wie im Screenshot), aber auch ein globales Script anlegen und dieses dann zuordnen kann? Im konkreten Fall möchte ich, dass wenn ich die Festplatte einstecke, diese automatisch gemountet wird und das Backup Script startet. Habe ich dazu die Einstellungen richtig getroffen? Quote Link to comment
mgutt Posted February 2, 2021 Share Posted February 2, 2021 Ich denke das geht beides. Du musst aber in den Settings die Pfade anpassen. Denke da ist klar. Quote Link to comment
Anym001 Posted February 2, 2021 Author Share Posted February 2, 2021 1 minute ago, mgutt said: Ich denke das geht beides. Du musst aber in den Settings die Pfade anpassen. Denke da ist klar. Okay super danke. Die Pfade habe ich bereits angepasst. Welchen Zusatz bräuchte ich noch, damit die Festplatte automatisch unmounted wird? Quote Link to comment
mgutt Posted February 2, 2021 Share Posted February 2, 2021 umount /mnt/pfad_der_platte Oder was auch gehen könnte (sdX anpassen): eject /dev/sdX Quote Link to comment
Anym001 Posted February 2, 2021 Author Share Posted February 2, 2021 4 minutes ago, mgutt said: umount /mnt/pfad_der_platte Einfügepunkt wäre zwischen den zwei letzten done`s oder? fi echo "Delete $backup" rm -r "${backup_path}/${backup}" done umount /mnt/pfad_der_platte done Quote Link to comment
mgutt Posted February 2, 2021 Share Posted February 2, 2021 10 minutes ago, Anym001 said: Einfügepunkt wäre zwischen den zwei letzten done`s oder? Nein ganz am Ende. Wenn du es vor das erste done packst, dann bist du noch in der Schleife, die die Quellpfade durcharbeitet: for source_path in "${source_paths[@]}"; do Dh die Zielplatte wird nach dem Sichern des ersten Quellpfads rausgeworfen. 1 Quote Link to comment
Anym001 Posted February 2, 2021 Author Share Posted February 2, 2021 Kann dieses Script auch für differentielle Backups verwendet werden? Ich möchte zb nicht alle 14 Tage ein volles Backup machen. (Möchte mein komplettes System auf die externe HDD sichern -> ca. 2,5TB -> Backupdauer) Er soll mit rsync die angegeben Shares durchprüfen, ob sich Änderungen ergeben haben. Falls ja, dann übertragen und sonst nicht. Falls Dateien in Unraid gelöscht wurden, sollen diese auch auf der HDD gelöscht werden. Vielleicht hast du da ja eine Idee dazu. Quote Link to comment
mgutt Posted February 2, 2021 Share Posted February 2, 2021 2 hours ago, Anym001 said: Falls ja, dann übertragen und sonst nicht. Genau das passiert bereits. Alle Dateien, die bereits auf dem Ziel im letzten Backup existieren, werden nicht erneut übertragen, sondern nur per Hardlink verlinkt. Zwar ist so jeder Ordner ein Voll-Backup, aber das ist nur ein "optischer" Nachteil. Mehr Speicherplatz wird dadurch nicht belegt. Normalerweise ist das ja so: Beispiel: Vollbackup + 3 Tages-Backups Bei differentiellen Backups brauchst du das Vollbackup und das letzte Tages-Backup für die Wiederherstellung. Bei inkrementellen Backups brauchst du das Vollbackup und alle 3 Tages-Backups für die Wiederherstellung. Bei meinem Hardlink-Backup brauchst du nur das letzte Backup. Quote Link to comment
Anym001 Posted February 2, 2021 Author Share Posted February 2, 2021 46 minutes ago, mgutt said: Genau das passiert bereits. Dann hab ich wohl dein Script noch nicht ganz verstanden. Muss ich am Script etwas verändern, wenn ich einmal wöchentlich sichere? (Normal jeden Sonntag) Die Einstellung der Zeit-Variablen verwirrt mich leider noch etwas. Quote Link to comment
mgutt Posted February 2, 2021 Share Posted February 2, 2021 33 minutes ago, Anym001 said: Muss ich am Script etwas verändern, wenn ich einmal wöchentlich sichere? (Normal jeden Sonntag) In meinem Script kannst du nur die Aufbewahrungsfristen definieren. Wie oft du sicherst, entscheidest du an Hand dessen wann du das Script ausführst. Die Fristen: days=14 # preserve backups of the last X days months=12 # preserve backups of the first day of the last X month years=3 # preserve backups of the first january of the last X years Wenn du nur Sonntags sicherst, solltest du die "days" erhöhen. Also wenn du die Backups der letzten 4 Wochen behalten möchtest, dann entsprechend "days=28". Jährliche Backups werden zB nur aufgehoben, wenn sie am 01.01. erstellt wurden. Wurde ein Backup am 02.01. erstellt, dann wird es gelöscht, wenn es älter ist als "days". An dieser Einschränkung arbeite ich noch. Quote Link to comment
Anym001 Posted February 3, 2021 Author Share Posted February 3, 2021 13 hours ago, mgutt said: An dieser Einschränkung arbeite ich noch. Okay alles klar. Welches Dateisystem benötige ich für diese Art von Script? XFS und EXT4 müsste beides gehen oder? Wie funktioniert das mit der Benennung der Ordner? Also mit Punkt und ohne Punkt? (zB .20210203_065000 / 20210203_065000) Quote Link to comment
Anym001 Posted February 3, 2021 Author Share Posted February 3, 2021 21 hours ago, mgutt said: Nein ganz am Ende. Habe ganz am Ende folgendes hinzugefügt: ... echo "Delete $backup" rm -r "${backup_path}/${backup}" done done echo "Wait 30 seconds until unmount the device." sleep 30s echo "Unmount the device." umount /mnt/disks/WD_My_Passport_260D Leider gibt er mir trotz sleep Funktion folgenden Fehler im Log aus: umount: /mnt/disks/WD_My_Passport_260D: target is busy. Quote Link to comment
mgutt Posted February 3, 2021 Share Posted February 3, 2021 3 hours ago, Anym001 said: umount: /mnt/disks/WD_My_Passport_260D: target is busy. Dann vermute ich, dass UD die "Macht" hat. Prüfe wie folgt: lsof /mnt/disks/WD_My_Passport_260D Oder: fuser -m /mnt/disks/WD_My_Passport_260D Eventuell muss man dann den umount erzwingen. Quote Link to comment
Anym001 Posted February 3, 2021 Author Share Posted February 3, 2021 Muss ich diese Befehle direkt im Script hinzufügen? Wenn ich diese in Unraid im Terminal ausführe, kommen keine Ergebnisse. Habe auch probiert, dass ich am Ende des Scripts ein cd einbaue, weil das scheinbar manchmal zu Problemen führt. -> Leider ohne Erfolg. Quote Link to comment
mgutt Posted February 3, 2021 Share Posted February 3, 2021 2 hours ago, Anym001 said: Wenn ich diese in Unraid im Terminal ausführe, kommen keine Ergebnisse. Und wenn du im Terminal den umount ausführst? Quote Link to comment
mgutt Posted February 3, 2021 Share Posted February 3, 2021 14 hours ago, Anym001 said: Welches Dateisystem benötige ich für diese Art von Script? XFS und EXT4 müsste beides gehen oder? Wie funktioniert das mit der Benennung der Ordner? Also mit Punkt und ohne Punkt? XFS und EXT4 unterstützen beide Hardlinks. Sollte also mit beiden gehen. Backups mit "." sind laufende Backups oder Backups, die nicht erfolgreich waren. 1 Quote Link to comment
Anym001 Posted February 4, 2021 Author Share Posted February 4, 2021 22 hours ago, mgutt said: Und wenn du im Terminal den umount ausführst? Hier funktioniert es ohne Probleme. Quote Link to comment
mgutt Posted February 4, 2021 Share Posted February 4, 2021 16 minutes ago, Anym001 said: Hier funktioniert es ohne Probleme. Dann vermute ich, dass das Backup noch nicht fertig ist. Linux kann den RAM als Zwischenspeicher nutzen. Kannst du evtl hören ob die Platte noch aktiv ist? Probier mal das: timeout 1000 bash -c -- 'while umount /mnt/disks/WD_My_Passport_260D; sleep 30;done' Die Idee ist es alle 30 Sekunden den Unmount zu versuchen und wenn es nach 1000 Sekunden immer noch nicht geklappt hat, bricht er ab (zur Sicherheit, damit es nicht unendlich lange läuft). Eine Kombination aus dem: https://unix.stackexchange.com/a/78514/101920 und dem: https://stackoverflow.com/a/27555865/318765 Quote Link to comment
Anym001 Posted February 6, 2021 Author Share Posted February 6, 2021 (edited) On 2/4/2021 at 4:41 PM, mgutt said: Probier mal das: timeout 1000 bash -c -- 'while umount /mnt/disks/WD_My_Passport_260D; sleep 30;done' Leider ohne Erfolg. Folgende Fehlermeldung: bash: -c: line 0: syntax error near unexpected token `done' bash: -c: line 0: `while umount /mnt/disks/WD_My_Passport_260D; sleep 30;done' Eine wäre noch, die Festplatte über den Path zur Partition zu entfernen. (/dev/sde1) -> Nur ist die Frage, bleibt die immer gleich oder kann sich die auch verändern? Wenn ich nämlich das Logfile anschaue, dann wird bei einem manuell unmount wie folgt vorgegangen: Feb 6 09:39:26 nas unassigned.devices: Running device script: 'WD_My_Passport_260D.sh' with action 'UNMOUNT'. Feb 6 09:39:27 nas unassigned.devices: Unmounting disk 'WD_My_Passpo'... Feb 6 09:39:27 nas unassigned.devices: Unmounting '/dev/sde1'... Feb 6 09:39:27 nas unassigned.devices: Unmount cmd: /sbin/umount '/dev/sde1' 2>&1 Feb 6 09:39:27 nas kernel: XFS (sde1): Unmounting Filesystem Feb 6 09:39:27 nas unassigned.devices: Successfully unmounted '/dev/sde1' Feb 6 09:39:27 nas unassigned.devices: Disk with serial 'My_Passport_260D_XXX', mountpoint 'WD_My_Passport_260D' removed successfully. Feb 6 09:39:27 nas unassigned.devices: Running device script: 'WD_My_Passport_260D.sh' with action 'REMOVE'. Feb 6 09:39:38 nas kernel: usb 2-2: USB disconnect, device number 2 Edited February 6, 2021 by Anym001 Quote Link to comment
sonic6 Posted May 8, 2021 Share Posted May 8, 2021 (edited) Moin, bevor ich nen neue Threat erstelle, greife ich das ganze hier lieber noch einmal auf. -Konntet ihr das umount am ende des Skripts zum laufen bekommen? -Wie sieht es mit einem automatischen mount des Laufwerks aus? Ich würde das Laufwerk gerne an nem Hot-Plug Sata angeschlossen lassen, jedoch nur fürs Backup gemounted haben wollen. Die Idee wäre es dann das Laufwerk per User Script zu mounten und wenn der mount erfolgreich war das Backup Script per UD ausführen zu lassen. Am Ende vom Backup-Script dann der umount. Das Backup per Script soll dafür auch nur einmal im Monat laufen. So ich wie das verstanden habe, bietet sich da dann immer der 1. eines Monats an. Nur dann blieben mir "monatliche Inkrementelle" Backups? Leider fehlt mir hier wieder das Know-How wie ich per Script/Terminal ein Laufwerk mounte. Vielleicht kann mir hier jemand nen Denkanstoß geben. Danke. Edited May 8, 2021 by sonic6 Quote Link to comment
Unraid_Haupt Posted August 17, 2021 Share Posted August 17, 2021 https://forum.thegeekfreaks.de/forum/index.php?thread/192-automatisches-backup-auf-externe-hdd-usb-stick-hdd-ect/ Habe das Script nach meinen Wünschen angepasst. Quote Link to comment
i-B4se Posted August 17, 2021 Share Posted August 17, 2021 (edited) @Unraid_Haupt Sei mir nicht Böse, aber Quote @Alex, falls du das als Video machen willst, würde ich es wünschen, erwähnt zu werden Nur weil du 5 Zeilen eingefügt hast und alles passende hier schon im Thread steht. Die Hauptarbeit hat trotzdem @mguttgemacht. Ich reagiere bei sowas immer etwas empfindlich. Nehm es nicht persönlich, hab mit sowas schlechte Erfahrung gemacht. Da hätte ich es Fair gefunden ihn zu erwähnen. Wenn es nämlich Probleme mit dem Script gibt gehen alle Rückfragen an ihn. Edited August 17, 2021 by i-B4se 1 Quote Link to comment
cholzer Posted July 13, 2022 Share Posted July 13, 2022 (edited) ein forced umount kann dazu führen dass unraid diese disk als aus einem "broken array" ansieht und man diese erst nach einem reboot von unraid wieder mounten kann (fragt mich woher ich das weis 😅 ) unmount sollte man daher nur unassigned devices machen lassen, nicht manuell via 'umount'. aus meinem script /usr/local/sbin/rc.unassigned umount '/dev/disk/by-uuid/3C9751517A72CC80' uuid muss man natürlich die seiner disk eintragen Edited July 13, 2022 by cholzer Quote Link to comment
DataCollector Posted July 13, 2022 Share Posted July 13, 2022 On 2/2/2021 at 9:31 AM, mgutt said: Oder was auch gehen könnte (sdX anpassen): eject /dev/sdX Hierzu eine Frage: Kann man irgendwie festlegen, daß unraid einer bestimmten (wiedererkannten) Festplatte immer die selbe 'sdX' Kennung zuweist (sofern diese frei ist)? Mir ist aufgefallen, daß unraid beim Booten wohl neu sortiert und wenn sich in der Hardware da etwas geändert hat, stimmt diese Zuordnung nicht mehr. Das ist ärgerlich, wenn man eben Scripte/Befehle vorbereitet nutzt, die eben mit "sdX" arbeiten. Quote Link to comment
hawihoney Posted July 13, 2022 Share Posted July 13, 2022 26 minutes ago, DataCollector said: Das ist ärgerlich, wenn man eben Scripte/Befehle vorbereitet nutzt, die eben mit "sdX" arbeiten. Deshalb findest Du an vielen Stellen den Hinweis, dass man nicht mit /dev/sdx arbeiten soll sondern mit /dev/disk/by-id/x. Beide können gleich verwendet werden. Eine neue /dev/sdx Bezeichnung erhältst Du in der Regel nur beim Ändern der Hardware. Das liegt einfach am Linux Unterbau. 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.