Automatisch Synchronisation starten, wenn Platte gemountet wird

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
jande
Beiträge: 3
Registriert: 29.12.2023 12:25:08

Automatisch Synchronisation starten, wenn Platte gemountet wird

Beitrag von jande » 29.12.2023 12:39:07

Hallo,

ich nutze das aktuelle Debian 12 auf einem Lenovo X1 Carbon und habe mir eine Synology NAS (DS223j) gekauft. Auf dieser möchte ich die Daten vom Laptop synchronisieren. Dies soll immer dann automatisch passieren, wenn die Platte gemounted ist.

Am besten wäre es, wenn mein Laptop erkennen würde, dass ich mich im lokalen W-Lan-Netz befinde, dann die entsprechenden Partitionen mountet und die Synchronisation startet. Wenn ich den Rechner zuklappe oder den Bereich des lokalen Netzwerkes verlasse, soll die Synchronisation enden.

Notfalls könnte ich die Partitionen natürlich auch händisch mounten und aushängen. Dann sollte aber zumindest die Synchronisation automatisch starten. Das würde ich aber lieber nicht tun, da ich fürchte, die Synchronisationen dann nicht ganz so regelmäßige durchzuführen.

Ich habe schon ein wenig gegoogelt, "ertrinke" aber in der Vielfalt der zum Mounten und zur Synchronisation im Allgemeinen geschriebenen Beiträge.

Kennt jemand von Euch vielleicht ein Tool, mit dem man diese Aufgabe erledigen kann?

Falls ich hier nicht die richtige Rubrik getroffen habe, bitte ich vielmals um Entschuldigung.

Beste Grüße,

Jan

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Automatisch Synchronisation starten, wenn Platte gemountet wird

Beitrag von MSfree » 29.12.2023 13:20:46

jande hat geschrieben: ↑ zum Beitrag ↑
29.12.2023 12:39:07
Am besten wäre es, wenn mein Laptop erkennen würde, dass ich mich im lokalen W-Lan-Netz befinde, dann die entsprechenden Partitionen mountet und die Synchronisation startet. Wenn ich den Rechner zuklappe oder den Bereich des lokalen Netzwerkes verlasse, soll die Synchronisation enden.
So etwas ist nicht vorgesehen. Ein entsprechendes Skript oder Tool gibt es also nicht.

Ich würde jetzt zwar nicht behaupten, daß es nicht geht. Der Aufwand, so etwas ist zuverlässig, stabil, ohne Datenverlust und ohne hängende Prozesse zum Laufen zu bekommen, ist aber beträchtlich.

So hat z.B. der Mountprozeß keine Möglichkeit, irgendeinen Befehl zu starten, sobald der Mount erfolgreich war. Auch der Wunsch, bei Verlassen des WLANs, den Prozeß abzubrechen, ist nahezu unerfüllbar, vor allem, wenn das dadurch passiert, daß man den Laptop im laufenden Zustand aus dem Empfangsbereich der WLANs trägt. Überlicherweise warten Netzwerkverbindungen eine Weile, bevor sie tatsächlich als abgebrochen erkannt werden. Die Wartezeit liegt bei TCP/IP überlicherweise bei 20 Minuten. Während der Zeit hängt dein Prozeß halt.

Möglicherweise kann man sich mit NextCloud etwas zusammenzimmern. NextCloud gibt es als App für die Synology.

jande
Beiträge: 3
Registriert: 29.12.2023 12:25:08

Re: Automatisch Synchronisation starten, wenn Platte gemountet wird

Beitrag von jande » 29.12.2023 14:10:56

Hallo, MSfree,

ganz herzlichen Dank für Deine Rückmeldung!
MSfree hat geschrieben: ↑ zum Beitrag ↑
29.12.2023 13:20:46
So etwas ist nicht vorgesehen. Ein entsprechendes Skript oder Tool gibt es also nicht.
Nun, dann hab ich ja zumindest keine ganz dumme Frage gestellt. :)
MSfree hat geschrieben: ↑ zum Beitrag ↑
29.12.2023 13:20:46
Möglicherweise kann man sich mit NextCloud etwas zusammenzimmern. NextCloud gibt es als App für die Synology.
Ja, das wäre in der Tat ne Überlegung wert. Ich setze Nextcloud bereits zur Datensicherung auf einem externen Server ein. Das jetzt noch auf der Diskstation zu installieren, schien mir auf den ersten Blick ein wenig zu umständlich bzw. doppelt gemoppelt. Aber vielleicht ist das doch ne ganz vernünftige Lösung.

Beste Grüße!

Jan

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Automatisch Synchronisation starten, wenn Platte gemountet wird

Beitrag von heisenberg » 29.12.2023 15:02:13

Das ist nicht das erste Mal, dass ich diese Idee höre, bzw. den Wunsch nach diesem Feature.

Mit fortgeschrittenen Scriptingfähigkeiten sollte das nicht all zu schwer sein. So könnte ich mir das vorstellen:
  • Du prüfst mit einem eigenen Dienst kontinuierlich, ob das heimische, WLAN in Reichweite und verbunden ist. Das ginge vielleicht mit einem einfachen Ping auf Deine Synology oder auch mit einem iwlist scan (=WLAN SSIDs anzeigen) und dessen Auswertung.
  • Wenn ja, dann mountest Du das und führst den Syncronisationsvorgang aus. Alternativ ohne mount und rsync via ssh.
  • Da die Synchronisation jederzeit fehlschlagen kann, würde ich nie auf den tatsächlichen Datenbestand (auf der Synology) synchronisieren, sondern immer nur auf einer Kopie (auf der Synology). Also z. B. auf /synbackup.new, während das normale Backup auf /synbackup liegt. D. h. wird der Synchronisationsvorgang unterbrochen, dann ist die Kopie der Datensicherung inkonsistent. Wird das Backup irgendwann zu Ende durchgeführt, dann ist die Kopie dadurch automatisch konsistent.
  • Diese Datenkopie kann die Synology selbst regelmässig anlegen. Das kopieren dauert je nach Datenmenge schon eine Weile.
  • Nach erfolgreicher Synchronisation würde ich die verschiedenen Sicherungsverzeichnisse verschieben. Dieser Vorgang darf nicht unterbrochen werden. Da Verschiebevorgänge innerhalb eines Dateisystems quasi keine Zeit brauchen, betrachte ich das als sehr robust.
    • /synbackup -> /synbackup.old
    • /synbackup.new -> /synbackup
  • Anschließend würde ich das /synbackup.old löschen. Das dauert auch etwas länger und kann auch im Hintergrund geschehen. Das könnte genauso gut die Synology selbst regelmässig im Hintergrund aufräumen.
  • Auf der Synology könntest Du dann noch das Sicherungsverzeichnis rotieren, so dass Du mehrere Backupsätze hast.
  • Wenn das Dateisystem das unterstützt, könnte man die Kopien für das Backup und die Rotation auch mittels rsync/hardlinks umsetzen, so wie rsnapshot das macht (rsync --link-dest...)
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Automatisch Synchronisation starten, wenn Platte gemountet wird

Beitrag von jph » 29.12.2023 17:57:44

MSfree hat geschrieben: ↑ zum Beitrag ↑
29.12.2023 13:20:46
jande hat geschrieben: ↑ zum Beitrag ↑
29.12.2023 12:39:07
Am besten wäre es, wenn mein Laptop erkennen würde, dass ich mich im lokalen W-Lan-Netz befinde, dann die entsprechenden Partitionen mountet und die Synchronisation startet. Wenn ich den Rechner zuklappe oder den Bereich des lokalen Netzwerkes verlasse, soll die Synchronisation enden.
So etwas ist nicht vorgesehen. Ein entsprechendes Skript oder Tool gibt es also nicht.
Doch, so etwas gibt es: NetworkManager-Dispatcher-Skripte.

Dokumentation: https://www.networkmanager.dev/docs/api ... tcher.html

Du kannst im Skript bspw. abfragen, ob sich der Laptop gerade mit dem gewünschten WLAN verbunden hat und dann deine Synchronisation starten. Ich habe damit früher auf meinem Laptop die CUPS-Druckerwarteschlange meines im heimischen WLAN verfügbaren Laserdruckers gestartet oder gestoppt. Mittlerweile nutze ich Driverless Printing, so dass ich dir die Skripte nicht als Basis zur Verfügung stellen kann. Ist aber nichts weiter als etwas bash mit Auswertung der Werte von NM_DISPATCHER_ACTION und CONNECTION_UUID.

jande
Beiträge: 3
Registriert: 29.12.2023 12:25:08

Re: Automatisch Synchronisation starten, wenn Platte gemountet wird

Beitrag von jande » 29.12.2023 20:27:07

heisenberg hat geschrieben: ↑ zum Beitrag ↑
29.12.2023 15:02:13
Mit fortgeschrittenen Scriptingfähigkeiten sollte das nicht all zu schwer sein. So könnte ich mir das vorstellen:
jph hat geschrieben: ↑ zum Beitrag ↑
29.12.2023 17:57:44
Doch, so etwas gibt es: NetworkManager-Dispatcher-Skripte.
Ah, das klingt interessant (und nach ner schönen "Bastelarbeit" im positiven Sinne des Wortes). Ganz herzlichen Dank Euch beiden!

Dieses Jahr wird das nichts mehr; aber ich geh das gerne mal nächste Woche an und melde mich bei Erfolg!

Beste Grüße,

Jan

Antworten