expertenaustausch > linux.debian.user.german

nac (12.01.2020, 15:40)
Hi Menschen,

ich suche gerade nach einer praktikablen Lösung mein /home auf weitere
Rechner zu syncen.

Ausgangssituation;
3x Debian 10 "buster" die sich regelmäßig mal in einem Netz treffen,
aber auch mal getrennt von einander existieren. Ich hätte gern mein
/home auf allen 3 Systemen gleichermaßen verfügbar und aktuell.

Lösungen?
1) rsync via ssh
2) Nextcloud Desktop Client
3) /home komplett in einem git
4) Snapshot mit btrfs / zfs und sync der Snapshots via Nextcloud / rsync

Gibt es noch weitere Lösungen die ich nicht kenne?
Welche haltet ihr für am sinnvollsten und schnellsten?
Muss /home in solchen fällen zwingend eine extra Partition sein?

vlg

nac
Stefan Majewsky (12.01.2020, 16:10)
Moin nac,

Am 12.01.2020 14:21 schrieb nac:
> Ausgangssituation;
> 3x Debian 10 "buster" die sich regelmäßig mal in einem Netz treffen,
> aber auch mal getrennt von einander existieren. Ich hätte gern mein
> /home auf allen 3 Systemen gleichermaßen verfügbar und aktuell.


Bevor du konkrete technische Lösungen suchst, mach dir klar, dass dieses
Problem (so wie beschrieben) schon auf der konzeptuellen Ebene so gut
wie unlösbar ist.

Der einfache Fall (der tatsächlich lösbar sein kann) ist, wenn zujedem
Zeitpunkt nur maximal eines dieser drei Systeme aktiv ist. Dann gibt es
keine Bearbeitungskonflikte. Dann bleibt "nur" die Frage, wie man bei
beweglichen Systemen (Notebooks, Tablets etc.) auf die Hauptkopie des
/home zugreift.

Sobald mehrere Systeme parallel aktiv sind, stellt sich die Frage, wie
die Änderungen an den verschiedenen /home zusammengeführt werden sollen.
Bei Textdateien ist ein `git merge` oder ähnlich noch ziemlich machbar,
aber was machst du bei Binärdateien? Firefox zum Beispiel legt jede
Menge Kram in SQLite-Datenbanken ab. Und selbst wenn du dafür ein
passendes Merge-Tool hast, stellt sich die Frage, wie du inhaltliche
Merge-Konflikte auflöst.

Ich habe vor Jahren auch schon mal überlegt, ob ich mein /home zwischen
dem Desktop-PC zuhause und meinem Notebook syncen kann, und habe die
offensichtliche Lösung "das ganze /home syncen" deswegen verworfen. Mein
Ansatz sieht zurzeit wie folgt aus:

1. Wichtige textbasierte Konfigurationsdateien (Shell, vim, Firefox,
etc.) liegen in einem Git-Repo (). Die
entsprechenden Files existieren im Home-Verzeichnis als Symlinks in das
Repo (siehe install.sh in dem Repo). Ab und an committe ich die
Änderungen in diesem Repo und pulle auf den anderen Systemen.

2. Bestimmte Binärdateien (insb. LibreOffice-Kram), von denen ich weiß,
dass ich sie auf verschiedenen Systemen bearbeiten möchte, liegen
ebenfalls in Git-Repos. Diese committe und pushe ich immer sofort nach
dem Bearbeiten, damit keine Konflikte entstehen.

3. Alle Systeme schreiben ihr /home-Backup zum selben Server. Wenn ich
mal eine Datei brauche, die auf einem anderen System liegt und nicht in
Versionskontrolle ist, kann ich sie mir aus dem Backup des
entsprechenden Systems holen.

4. Bestimmte Applikationen haben ihr Sync schon eingebaut. Das
Thunderbird-Verzeichnis muss ich nicht syncen, denn die Mails liegen eh
auf dem Mailserver und sind per IMAP erreichbar. Analog könnte man
Firefox-Einstellungen per Firefox Sync in Form halten. (Dieser Ansatz
setzt natürlich voraus, dass man dem Anbieter der Sync-Server vertraut.)

Mir ist klar, dass das nicht die Antwort ist, die du hören möchtest.
Aber das Problem, wie du es beschreibst, ist hinreichend kompliziert,
dass ich dir empfehlen würde: "Pick your fights". Synchronisiere die
Sachen, die dir wichtig sind. Und schere dich nicht um die anderen
20.000 Config-Files, die eh nicht interessant sind und nur andauernd
Merge-Konflikte erzeugen.

Schöne Grüße
Stefan
nac (12.01.2020, 16:20)
Hi Stefan,

[..]
> Menge Kram in SQLite-Datenbanken ab. Und selbst wenn du dafür ein
> passendes Merge-Tool hast, stellt sich die Frage, wie du inhaltliche
> Merge-Konflikte auflöst.


Gute Kritik.

> Ich habe vor Jahren auch schon mal überlegt, ob ich mein /home zwischen
> dem Desktop-PC zuhause und meinem Notebook syncen kann, und habe die
> offensichtliche Lösung "das ganze /home syncen" deswegen verworfen. Mein
> Ansatz sieht zurzeit wie folgt aus:
> 1. Wichtige textbasierte Konfigurationsdateien (Shell, vim, Firefox,
> etc.) liegen in einem Git-Repo (). Die
> entsprechenden Files existieren im Home-Verzeichnis als Symlinks in das
> Repo (siehe install.sh in dem Repo). Ab und an committe ich die
> Änderungen in diesem Repo und pulle auf den anderen Systemen.


Die Symlinks nutzt du um alles in einem Repo zu haben? Warum nicht
einfach von /home aus alles? Das würde doch die Symlinks und damit die
install.sh überflüssig machen.

[..]
> auf dem Mailserver und sind per IMAP erreichbar. Analog könnte man
> Firefox-Einstellungen per Firefox Sync in Form halten. (Dieser Ansatz
> setzt natürlich voraus, dass man dem Anbieter der Sync-Server vertraut.)


Das ist schon mal eine interessante Lösung und gibt mir auf jedenfall
neue Denkanstöße. Ich tendiere nun auch mehr in so eine Richtung.

> Mir ist klar, dass das nicht die Antwort ist, die du hören möchtest.
> Aber das Problem, wie du es beschreibst, ist hinreichend kompliziert,
> dass ich dir empfehlen würde: "Pick your fights". Synchronisiere die
> Sachen, die dir wichtig sind. Und schere dich nicht um die anderen
> 20.000 Config-Files, die eh nicht interessant sind und nur andauernd
> Merge-Konflikte erzeugen.


Ach ich hatte keine direkten Erwartungen. Ich bin glücklich über jeden
Input den ich bekomme und werde sehen was am Ende für mich passt. Vielen
lieben danke.

vlg

nac
Elimar Riesebieter (12.01.2020, 16:50)
* nac <nac> [2020-01-12 14:21 +0100]:

> Hi Menschen,
> ich suche gerade nach einer praktikablen Lösung mein /home auf weitere
> Rechner zu syncen.


nfs von einem Master Server.

Elimar
Norbert Preining (12.01.2020, 17:30)
Hallo,

On Sun, 12 Jan 2020, nac wrote:
> ich suche gerade nach einer praktikablen Lösung mein /home auf weitere
> Rechner zu syncen.


Kenn ich gut, mache ich zwischen drei Rechnern.

> 1) rsync via ssh
> 2) Nextcloud Desktop Client
> 3) /home komplett in einem git
> 4) Snapshot mit btrfs / zfs und sync der Snapshots via Nextcloud / rsync


unison.

Es ist die einzige Lösung die two-way sync macht. rsync macht nur
one-way, sprich wenn du auf beiden Systemen gearbeitet hast, wird ein
Teil überschrieben.

Nextcloud (oder OneDrive/Dropbox etc) geht wahrscheinlich auch, hab ich
nicht probiert.

git geht auch, ist aber mühseliger als unison glaub ich.

> Muss /home in solchen fällen zwingend eine extra Partition sein?


Nein. Man kann auch dinge wie ~/.cache etc vom unison sync
ausnehmen. Ich nehme alle .git repos (extension .git am dir) etc vom
syncen aus. Ebenfalls cache dirs. Über die Zeit wächst die Liste der
Dinge an.

Aber ich habe über 15 Jahre drei bis 5 Rechner damit synchronisiert,
auch wenn ich auf mehreren gearbeitet habe.

NUR WARNUNG: Leider ist unison *SEHR* zickig was Versionen angeht. Die
version in sid arbeitet nicht mit der in buster zusammen. Man muss ich
immer die stable versionen überall mitschleifen. Wenn alle auf buster
rennen, dann ist das aber kein Problem.

LG

Norbert
Jochen Topf (12.01.2020, 18:10)
On Sun, Jan 12, 2020 at 02:21:40PM +0100, nac wrote:
> ich suche gerade nach einer praktikablen Lösung mein /home auf weitere
> Rechner zu syncen.
> Ausgangssituation;
> 3x Debian 10 "buster" die sich regelmäßig mal in einem Netz treffen,
> aber auch mal getrennt von einander existieren. Ich hätte gern mein
> /home auf allen 3 Systemen gleichermaßen verfügbar und aktuell.


Ds Programm Unison (gibts ein Debian-Package für) kann automatisch in
beiden Richtungen syncen. Es merkt sich, was wo war und macht alles
richtig. Wenn es einen Konflikt gibt, dann muss man den halt von Hand
auflösen. Das funktioniert wirklich sehr gut, ich hab das jahrelang
benutzt, um meinen Arbeitsplatzrechner und Notebook zu syncen. Ich hab
dann immer bevor ich den Notebook mitgenommen habe einen Sync gemacht
und gleich nachdem ich wieder zu Hause war wieder den Sync.

Wenn man beide gleichzeitig Rechner verwendet, ohne zu syncen, dann hat
man viel zu viele konkurrierende Änderungen in dot-Dateien und dergl von
den ganzen Anwendungen. Das macht dann keinen Spass mehr. Wenn Du nur
einen Teil vom Home syncst, also Deine eigenen Dateien und all die
Sachen wie .cache und .config nicht, dann sollte das okay sein.

Das ganze geht erstmal nur zwischen zwei Rechnern. Bei drei Rechnern
geht es auch, wenn Rechner A immer nur mit B und C redet, aber die B und
C nicht untereinander. Solange man häufig genug Unison aufruft in der
Richtigen Reihenfolge, dann geht das.

Jochen
Jochen Spieker (12.01.2020, 22:20)
Stefan Majewsky:
> Mir ist klar, dass das nicht die Antwort ist, die du hören möchtest. Aber
> das Problem, wie du es beschreibst, ist hinreichend kompliziert, dass ich
> dir empfehlen würde: "Pick your fights". Synchronisiere die Sachen, diedir
> wichtig sind. Und schere dich nicht um die anderen 20.000 Config-Files, die
> eh nicht interessant sind und nur andauernd Merge-Konflikte erzeugen.


Ich schließe mich an, möchte nur zwei Stichwörter einwerfen:

- etckeeper, ursprünglich für /etc gedacht, funktioniert aber natürlich
auch für andere Anwendungsfälle.
- git-annex, ein erweitertes Git für große Binärdaten

Ich selbst verwende nur etckeeper und das auch eher passiv, aber ich
glaube, beides kann für den OP interessant sein.

J.
Marc Haber (13.01.2020, 09:00)
On Sun, 12 Jan 2020 14:21:40 +0100, nac <nac> wrote:
>ich suche gerade nach einer praktikablen Lösung mein /home auf weitere
>Rechner zu syncen.


Ich habe meine Arbeitsdaten in ~/Daten, das halte ich mit unison auf
meinen drei Arbeitsrechnern synchron

Für die Dotfiles, die auf allen Systemen gleich sein können (bash,
vim, ssh) benutze ich vcsh und myrepos.

Der Rest, u.a. die Konfiguration des Desktop-Environments ist lokal
und individuell.

Grüße
Marc
Norbert Preining (13.01.2020, 14:40)
Hi Jakobus,

cool, ziemlich ähnliches setup.

> Ich hab mir meine Bash-Konfiguration in ein Git-Repo verpackt. Da sind
> alias functions usw. alles mit drin. Ebenso die tmux und vim


Das mache ich mit unison.

> Firefox synce ich mit dem Firefox-Sync. Mozilla bietet hierzu den
> Syncserver auch so an, dass man ihn selber betreiben kann - was ich auch
> mache, damit meine Daten nicht bei Mozilla liegen. Man könnte sogar den


Hab ich nicht gewusst, cool. Ich verwende Brave und habe das syncen
aufgegeben. Leider.

> Meine Passwörter habe ich mit pass (ist in jeder Distribution vorhanden)
> in einem selbst gehosteten git-repo und so auf allen meinen Geräten zur
> Verfügung.


Hier genau so, plus chrome/brave browser plugin zum ausfüllen der
Passwörter, funktioniert super.

> Für die Daten hab ich noch keine brauchbare Lösung gefunden. Ich las mal


unison.

LG

Norbert
Alexander Reichle-Schmehl (13.01.2020, 15:20)
Hi!

Am 2020-01-13 12:18, schrieb Jakobus Schürz:

> Firefox synce ich mit dem Firefox-Sync. Mozilla bietet hierzu den
> Syncserver auch so an, dass man ihn selber betreiben kann - was ich
> auch
> mache, damit meine Daten nicht bei Mozilla liegen. Man könnte sogar den
> Authentifikations-Dienst selber betreiben. Dazu bin ich aber noch nicht
> gekommen.


Oh, den kann man selbst betreiben?

Paketiert finde ich es aber gerade nicht.... Ist das
? Weisst du zufällig, ob
das auch mit aktuellerem Python funktioniert?

Mit besten Grüßen,
Alexander
A. Söldner (13.01.2020, 15:50)
Hallo Liste,

erst einmal wünsche ich euch ein frohes neues Jahr!

Mein Anliegen:

Ich habe einen root-Server bei einem grossen Anbieter, auf dem mehrere
Sub-Domänen (Apache2) eingerichtet sind.

Wie kann ich den Traffic einzelner Apache-Instanzen bzw. Sub-Domänen mir
ausgeben lassen?
Auf dem System sind diverse Traffic-Programme installiert (vnstat,
iptraf etc.), aber dort wird mir nur der Gesamt-Traffic angezeigt.

Leider habe ich überhaupt keinen Ansatz wie ich mein "Anliegen" angehen
soll und freue mich auf eure Anregungen.

Viele Grüße
/Andre/
Ralf Prengel (13.01.2020, 16:40)
Am 13.01.20 um 14:39 schrieb A. Söldner:
[..]
> soll und freue mich auf eure Anregungen.
> Viele Grüße
> /Andre/

Hallo,
matamo (früher piwik) etc. hilft ggf. weiter.
Gruss
Ralf
Peter Blancke (13.01.2020, 17:40)
Am 2020-01-13, Ralf Prengel <ralf.prengel> schrieb:

> matamo


"matomo"?
Sebastian Suchanek (13.01.2020, 23:40)
Am 13.01.2020 um 14:09 schrieb Alexander Reichle-Schmehl:
> Am 2020-01-13 12:18, schrieb Jakobus Schürz:


Ich habe mich bislang zu weder noch durchringen können, aber der Mozilla
Authentifizierungsserver ist dem Vernehmen nach deutlich schlechter
dokumentiert als der Sync-Server.

> Oh, den kann man selbst betreiben?


Wenn man's kann... ;-)

> Paketiert finde ich es aber gerade nicht...


Als Debian-Paket? Ich fürchte, da gibt es (noch) nichts. Es gibt aber
zumindest Docker-Images dafür.

> Ist das ?


Jupp.

> Weisst du zufällig, ob das auch mit aktuellerem Python funktioniert?


Tut mir leid, da muss ich passen.

Tschüs,

Sebastian
Uwe Laverenz (15.01.2020, 05:10)
Hi,

Am 12.01.20 um 14:21 schrieb nac:

> Gibt es noch weitere Lösungen die ich nicht kenne?
> Welche haltet ihr für am sinnvollsten und schnellsten?
> Muss /home in solchen fällen zwingend eine extra Partition sein?


Ich verwende Syncthing:



Ich habe ebenfalls immer mehrere Rechner im Einsatz und verwende
syncthing, um auf allen meine Daten synchron zu halten. Ich
synchronisiere dabei nicht das komplette home, sondern einzelne Ordner
(Documents, Music, ...).

Alle Rechner synchronisieren auf einen kleinen Server und von dem
wiederum ziehe ich täglich ein Backup auf eine NAS.

Das funktioniert tadellos mit verschiedenen beteiligten Betriebssystemen
und wenn man will auch unterwegs übers Internet (siehe Doku).

cu,
Uwe

Ähnliche Themen