Re: Home sync

2020-01-12 Diskussionsfäden Jochen Topf
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 Topf  joc...@remote.org  https://www.jochentopf.com/  +49-351-31778688



Re: Home sync

2020-01-12 Diskussionsfäden nac
Hi Stefan,

> 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 zu jedem
> 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.

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 (https://github.com/majewsky/devenv). 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.

> 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.)

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



Re: Home sync

2020-01-12 Diskussionsfäden Stefan Majewsky

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 zu jedem 
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 (https://github.com/majewsky/devenv). 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



Home sync

2020-01-12 Diskussionsfäden nac
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