Backup Script Unassigned Devices


Anym001

Recommended Posts

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?

9E8F3EF7-1B00-465C-BE5F-DABC28187081.png

Link to comment
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

Link to comment
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.

 

  • Thanks 1
Link to comment

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.

Link to comment
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.

 

Link to comment
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.

Link to comment
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)

Link to comment
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.

Link to comment
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.

  • Like 1
Link to comment
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

Link to comment
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 by Anym001
Link to comment
  • 3 months later...

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 by sonic6
Link to comment
  • 3 months later...

@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 by i-B4se
  • Like 1
Link to comment
  • 10 months later...

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 by cholzer
Link to comment
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.

 

Link to comment
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.

 

  • Thanks 1
Link to comment

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.