Wie synchronisiere ich den Home-Ordner zwischen mehreren Computern?

Ich habe drei Computer zu Hause und möchte, dass der Ordnerbaum /home/ zwischen den drei synchronisiert wird.
Alle Dateien/Ordner (mit Ausnahme der versteckten), die auf einem der drei Computer geändert/hinzugefügt / entfernt wurden, werden auf den beiden anderen Computern aktualisiert.

Ist rsync genug, um das zu tun? und wie?

Author: lamcro , 2009-08-28

16 answers

Hier ist eine Liste von Dingen, die dieses Problem möglicherweise lösen könnten, wobei jeder die Kompromisse ausgleicht, die Sie anders treffen müssen, sodass Sie Ihre eigenen Entscheidungen treffen und die Dinge selbst ausprobieren müssen:

  • Unisono - wie von anderen erwähnt, wird dies manuell ausgeführt, ist aber sehr schnell, zuverlässig und effektiv. Erfordert, dass beide Maschinen gleichzeitig synchronisiert werden. Es hat eine schöne Benutzeroberfläche, damit Sie mit den fast unvermeidlichen Konflikten umgehen können, und Tracks und verbreitet Löschungen korrekt. Die grafische App/das grafische Paket heißt unison-gtk.

  • OwnCloud - Cloud-Speicher wird auf Ihrem eigenen Server ausgeführt. Sie brauchen eine Maschine zum Weiterfahren. Erfordert eine angemessene Menge an setup. Führt einen vollständigen Apache 2-Webserver und eine SQLLite-oder MySQL-Datenbank auf dem Server aus. Funktioniert ähnlich wie Dropbox mit einem Desktop-Client, aber der Server ist unter Ihrer Kontrolle. bearbeiten: ownCloud hat kürzlich einige Änderungen an der Ausführung des Projekts vorgenommen und hat jetzt ein neues, vollständig open source (also keine closed-source-enterprise edition) unter dem Deckmantel von NextCloud, (siehe diese youtube-interview mit der original OwnCloud-Entwickler für weitere details).

  • SparkleShare - verwendet git, um Dateien synchron zu halten. Laut Homepage: gut für viele kleinere Dateien, nicht gut für viele große Dateien wie Musik-oder Fotosammlung.

  • Seafile - Stellt eine Serverkomponente bereit, auf der Sie installieren können eine lokale Maschine. Seafile verwendet ein Datenmodell ähnlich wie git, um Änderungen zu verfolgen. Bietet sync-clients für desktops, tablets und smartphones. Ein Blogbeitrag, der Setup beschreibt, finden Sie unter http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/

  • Osync - "... bidirektionales Dateisynchronisierungstool, geschrieben in bash und basierend auf rsync. Es funktioniert auf lokalen und / oder Remote-Verzeichnissen über SSH-Tunnel. Es ist hauptsächlich "als Cron-Task gestartet werden" (Text von der Website)

  • PowerFolder - java-basierte GPL v2-Projekt. Haupt-Website schiebt kommerzielle Angebote, so dass es nicht klar ist, wie die zur Verfügung gestellt zu verwenden .jar-Datei.

  • Rsync - schnell und effektiv und schon seit Jahrzehnten, aber es hat keine Geschichte zu halten, so dass Sie eine Richtung wählen müssen, um zu entscheiden, ob eine Datei neu ist oder gelöscht. Grafische Werkzeuge sind verfügbar wie gwRsync.

  • Lsyncd - überwacht Ordner / Dateien, um die Rsync-Replikation auszulösen

  • Dvcs-autosync - in Python geschrieben, verwendet git zum Speichern und Freigeben von Änderungen zwischen Computern und XMPP zum Kommunizieren von Änderungen.

  • Git-annex - Befehlszeilentool zum Rangieren von Dateien basierend auf git. Hier gibt es eine illustrative Anleitung: http://git-annex.branchable.com/walkthrough/

  • Tonido - freeware -. Bietet eine Desktop-App, die Dateien für andere Geräte freigibt. Bieten Sie auch kommerzielle Cloud-Angebote und den TonidoPlug Plug-Computer an.

  • BitTorrent Sync (Freeware)-Peer-to-Peer-Dateisynchronisierung basierend auf BitTorrent. Ich weiß nicht viel darüber, da ich es nicht verwenden werde, da es nicht Open Source ist und nicht darauf vertraut, dass meine Daten in meinem LAN gespeichert werden. bearbeiten Sie diese Antwort mit besseren Informationen / realen Erfahrungen.

  • SyncThing - Entwickelt als eine open-source-alternative zu BitTorrent Sync. Derzeit fehlen einige der erweiterten Funktionen von BitTorrent Sync, z. B. nicht vertrauenswürdige Peers. Es befindet sich in aktiver Entwicklung.

  • Kommerzielle gehostete Dienste wie Dropbox, Ubuntu one, Google Drive, Apple iCloud sind alle schnell billig und bequem, aber sie alle erfordern ein Unternehmen mit all Ihren Daten zu vertrauen, und benötigen Sie eine relativ schnelle Internetverbindung.

  • Git / subversion - Verwenden Sie ein Quellcodeverwaltungssystem direkt. Vollständig manuell und kann ein wenig komplex, aber beliebter Ansatz mit einigen Benutzern vertraut mit diesen Systemen von ihnen als Programmiertools.

  • CloudFS - syncronise eine ganze Dateisystem-cluster-Technologie basieren,

  • NFS Mount-Im Grunde lebt Ihr Zuhause auf einer Maschine und Sie greifen über die netzwerk, nicht gut für Laptops, die Sie mitnehmen. Mehr info: http://www.linuxjournal.com/article/4880


Faktoren, die Sie bei Ihrer Entscheidung berücksichtigen sollten:

  • Zentraler Server-Einige Lösungen erfordern, dass ein Computer ständig (oder zumindest, wenn Sie synchronisieren müssen) eingeschaltet ist, mit dem andere Computer synchronisiert werden können. Dies kann eine Ihrer vorhandenen Maschinen oder eine separate Maschine wie ein NAS sein. Achten Sie auf erhöhte Leistung Bills.

  • Automatisch / manuell / geplant-Der beste Weg, um Konflikte zu vermeiden, wo etwas auf mehr als Maschine geändert wird, ist ein Programm auf jeder Maschine zu haben, die Änderungen beobachtet und synchronisiert sofort, auf diese Weise reduzieren Sie die Möglichkeit, am Ende mit mehreren Versionen. Bei manuellen Prozessen müssen Sie immer daran denken, die Synchronisation auszuführen.

  • Remote Access - möchten Sie außerhalb Ihres LAN (auch bekannt als Home) synchronisieren), denken Sie über die Auswirkungen auf die Sicherheit nach.

  • Sicherheit-Verlassen Ihre Daten Ihr Netzwerk verschlüsselt oder nicht, wie sicher ist die Übertragung zwischen Computern? Was ist, wenn jemand Ihre Daten unterwegs erfasst und später feststellt, dass die Verschlüsselung Fehler aufweist? Wer kontrolliert den Server, der Ihre Daten speichert, sind die Daten verschlüsselt, können Sie Dritten vertrauen? Müssen Sie Löcher in Ihren Router stecken, um Fernzugriff zu erhalten? Wie lange bleiben "gelöschte" Dateien und zugehörige Metadaten erhalten rund um für auf den synchronisierten Geräten und auf dem zentralen Server. Synchronisieren Sie zwischen verschlüsseltem und unverschlüsseltem Speicher?

  • Verschieben großer Ordner - Die Lösungen, die ich ausprobiert habe, haben alle ein Problem, dass die Synchronisierung beim Verschieben / Umbenennen einer Datei oder eines Ordners dies nicht versteht und alles erneut als neu hochlädt und dann die alte Kopie löscht.

  • Festplattenkapazität

  • Backups - synchronisation ist kein backup. Löschen Sie versehentlich eine wichtige Datei und viele der oben genannten werden alle Ihre anderen Kopien fröhlich löschen. Ich empfehle zu lesen Mat Honan Stück auf gehackt werden für einen guten Bericht darüber, was passieren kann, wenn Sie alle Ihre digitalen Eier in einem digitalen Korb setzen, so zu sprechen.


Ich empfehle, nicht den gesamten Home-Ordner zu synchronisieren, sondern bestimmte Ordner auszuwählen, die synchronisiert werden sollen, z Documents/, Pictures/ etc. Dies vermeidet den Schmerz, gezwungen zu sein, mit den Geschwindigkeits - / Leistungs - / Plattenplatzproblemen von umzugehen automatisch alles synchronisieren. Es vermeidet auch die Pflege von Ausschlusslisten.

Wenn ich weiterhin versuche, etwas zu finden, das für mich persönlich funktioniert, werde ich versuchen, diese Antwort mit nützlichen Informationen auf dem neuesten Stand zu halten. Ich habe die Informationen aus allen anderen Antworten zu einer vollständigen Antwort zusammengefasst.

Referenzen:

  • LinuxFormat - Februar 2014 LXF180 p31, "Hosted Storage Roundup"

Hacking/all/

 103
Author: Tim Abell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-05-14 07:58:27

Unisono könnte ein guter Kandidat sein:

Unison ist ein Dateisynchronisationstool für Unix und Windows. Es erlaubt zwei replikate einer Sammlung von Dateien und verzeichnisse, die auf verschiedenen hosts (oder verschiedene Festplatten auf dem gleichen host), separat modifiziert und dann auf den neuesten Stand gebracht durch die Verbreitung der änderungen in jedem Replikat zum anderen.

Es werden bereits 2-Wege-Synchronisierungen durchgeführt. Siehe update unten.

Ich habe gelernt, dass es sehr wenige Dinge, die rsync nicht tun kann, und es kann wahrscheinlich eine gleiche oder bessere Lösung bieten, aber Sie müssen warten, bis ein RSYNC-Experte für diese Lösung auftaucht.

Update: Ja, Unison kann mehr als 2 Maschinen synchronisieren. Aus ihrer Bedienungsanleitung:

Verwenden von Unison zum Synchronisieren von mehr als zwei Computern

Unison ist für die Synchronisierung von Replikatpaaren ausgelegt. Es ist jedoch möglich, es zu verwenden, um größere Gruppen von Maschinen in synchronisieren Sie durch Ausführen mehrerer paarweiser Synchronisierungen.

Wenn Sie dies tun müssen, besteht die zuverlässigste Möglichkeit, die Dinge einzurichten, darin, die Maschinen in einer "Sterntopologie" zu organisieren, wobei eine Maschine als "Nabe" und der Rest als "Speichen" bezeichnet wird und jede Speichenmaschine nur mit der Nabe synchronisiert. Der große Vorteil der Sterntopologie besteht darin, dass die Möglichkeit verwirrender "falscher Konflikte" ausgeschlossen wird, die sich aus der Tatsache ergeben, dass ein separates Archiv unisono für jedes Paar von Hosts, die es synchronisiert.

 27
Author: 3 revs, 2 users 89%user4358,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-10-07 11:08:36

Wie wäre es, Ihre Dateien in ein Versionskontrollsystem wie SubVersion oder git zu stellen?

I don ' T version mein gesamtes home-Verzeichnis, aber nur eine Handvoll Unterverzeichnisse, mit einige wichtige Dinge. Aber ich denke darüber nach, in git zu konvertieren, da es für diese Art von Job besser zu sein scheint. (eine schnelle Suche wird Sie in die richtige Richtung schicken).

Viel Glück


Update: Ein schöner Nebeneffekt bei git ist, dass es einfach ist, computerspezifische Dateien zu haben, da Sie sie benötigen nur einen Zweig für diesen Computer (und in git erhalten Sie diesen standardmäßig). Sie müssen also nicht auf allen Computern genau die gleichen Dateien haben, sie müssen nur ähnlich sein und einen gemeinsamen "Hauptzweig" mit Dingen haben, die Sie auf allen verschiedenen Computern möchten.

 19
Author: Johan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-09-02 13:56:35

Ihr Hauptproblem beim Versuch, dies zu tun, besteht darin, zu entscheiden, wie Änderungen zusammengeführt, Löschungen weitergegeben und Konflikte gelöst werden sollen. Dies ist auf vollständig automatisierte Weise schwer zu tun, insbesondere wenn Sie ein 3-Computer-Setup haben, das von mehreren Personen verwendet wird.

Wenn Sie Benutzer trennen, werden die Dinge viel einfacher. Da sich ein Benutzer nicht an zwei Stellen gleichzeitig befinden kann (und daher Konflikte erzeugt), können Sie dann einen rsync-Job einrichten, der bei der Anmeldung ausgeführt wird, um "Änderungen abzurufen", und sich abmelden, um "Änderungen zu pushen" ... zu einem von ihre Computer, die der Master wäre ... bei dieser Granularität würden Sie also /home/myuser jedes Mal synchronisieren und nicht das gesamte /home/. Eine zusätzliche Verfeinerung (falls sich Personen nicht abmelden) wäre das Ausführen des Push-Skripts nach kurzer Inaktivität.

Es gibt viele andere mögliche Lösungen, aber keine, die dieses Problem magisch lösen, soweit ich weiß. Der erste Schritt besteht wahrscheinlich darin, darüber nachzudenken, wie Sie die Maschinen verwenden, und eine passende Synchronisierungsrichtlinie zu entwickeln das Verhalten Ihres Benutzers.

 6
Author: Ira Cooke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-29 09:43:00

Ich denke, Sie können besser erreichen, was Sie wollen, indem Sie NFS in einen gemeinsamen Home-Ordner mounten. Schauen Sie sich diesen Artikel an http://www.linuxjournal.com/article/4880

 5
Author: jspeaks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-06-11 20:05:12

Dies wird keine vollständige Lösung bieten, aber es wird Ihnen einen Anfang geben:

Richten Sie ab und zu einen Cron-Job ein, um die Dateien zu synchronisieren. Ich benutze einen Befehl wie den folgenden:

rsync -alhz --stats --progress --exclude-from '/etc/rsync_backup_excludes.conf' / -e ssh [email protected]:/path/to/home/

Dies verwendet rsync, um nur die erforderlichen Änderungen zu kopieren, und nicht jedes Mal, wenn der Befehl ausgeführt wird, alles neu zu kopieren.

--stats --und Fortschritt sind optional und sollten wohl ausgeschlossen werden aus Ihren Skripts

Der Inhalt meiner rsync_backup_excludes.conf Datei sind:

dev/*
proc/*
lost+found/*
mnt/*
sys/*
 4
Author: Matt Cofer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-28 18:34:44

- Check out - lsyncd

Lsyncd überwacht eine lokale Verzeichnisbaum-Ereignismonitorschnittstelle (inotify oder fsevents). Es aggregiert und kombiniert Ereignisse für einige sekunden und erzeugt dann einen (oder mehrere) Prozess (es), um die Anpassungen. Standardmäßig ist dies rsync. Lsyncd ist somit ein leichtes Live spiegel lösung, die vergleichsweise einfach zu installieren ist nicht erforderlich neue Dateisysteme oder Blockdevices und behindert das lokale Dateisystem nicht Leistung.

Rsync+ssh ist eine erweiterte Aktionskonfiguration, die ein SSH zum Handeln verwendet datei und Verzeichnis werden direkt auf das Ziel verschoben, anstatt übertragen Sie das Bewegungsziel erneut über das Kabel.

Feinkörnige customizaton kann durch die Konfigurationsdatei erreicht werden. Benutzerdefinierte Aktionskonfigurationen können sogar in Cascading von Grund auf neu geschrieben werden ebenen, die von Shell-Skripten bis hin zu in der Lua-Sprache geschriebenem Code reichen.ebenen, die von Shell-Skripten bis hin zu in der Lua-Sprache geschriebenem Code reichen.

 4
Author: eric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-07-10 21:27:13

Schauen Sie sich dropbox an http://www.getdropbox.com / Plattformübergreifend Win / Linux / Mac

 2
Author: Boxdog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-28 18:41:17

Mounten Sie /home von einem Computer auf die anderen beiden. Automount funktioniert dafür ziemlich gut.

 2
Author: Xenoactive,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-08-25 15:05:59

Ubuntu One könnte das sein, wonach Sie suchen. Leider befindet es sich noch in der Beta-Phase und ich habe keine Erfahrung damit, daher bin ich mir nicht sicher, ob es für Sie funktionieren würde.

 1
Author: Ilari Kajaste,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-29 11:11:32

Wenn Sie wollen auch sync-configs - tools, die oben erwähnt werden, sind völlig hilflos: - configs werden oft geändert, und viele Logdateien werden machen Konflikte, so dass Sie nicht zusammengeführt werden.
Meine Täuschung ist einfach und dumm:) Ich habe eine Master-Workstation, und alle Dateien von "~" werden nur auf die zweite "Slave" kopiert. In dem Moment, in dem ich merke, dass ich etwas ändern muss - ich mache es auf Master und Slave fängt diese Änderungen synchron ab.

Außerdem sollten einige Bash-Skripte auf diesen unterschiedlich ausgeführt werden maschinen, also habe ich meine /etc/bash bearbeitet.bashrc:

export OOHOST=Master

Jetzt wissen Skripte, welchen Host sie bedienen ;)

 1
Author: kolypto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-29 21:38:15

Versuchen dvcs-autosync - .

Dies basiert auf git, verwendet XMPP, um betroffene Clients über Dateiänderungen zu informieren, und reagiert über Inode-Änderungen auf Dateiänderungsereignisse. So wird es immer direkt nach dem Dateiwechsel informiert, bei Konflikten stützt es sich auf die bewährten Methoden von git.

Ich benutze es seit einiger Zeit als Dropbox-Ersatz über öffentliche SSH-Schlüssel und es macht wirklich den Job.

 1
Author: schlypel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-03-22 13:11:19

PowerFolder - Sync-Dateien, Sync-Ordner, Remote-Speicher, Backup und private Dateifreigabe. Synchronisieren Sie Heim-und Büro-PC, teilen Urlaub Bilder oder arbeiten zusammen an Dokumenten. Die sichere Peer-to-Peer-Technologie von PowerFolder funktioniert über das Internet oder im LAN.

 0
Author: Molly7244,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-28 18:26:17

Die Problemumgehungen, die ich in Betracht ziehen würde:

  • Dropbox.
    Hauptnachteile: Es ist nicht frei für eine angemessene Menge an Daten. Ansonsten funktioniert es einwandfrei, IMHO

  • Ein NAS-server. Legen Sie Ihre Dateien auf einem NAS-Server, wurden sie einigermaßen erschwinglich in letzter Zeit (von 150 $ oder so) und eine gute verbraucht nicht viel Energie. Keine Synchronisierungsprobleme jemals.
    Hauptnachteil: langsamer als eine lokale Kopie

 0
Author: Rabarberski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-03-02 14:02:40

Ich benutze SyncTwoFolders für Mac und Syncback für PC - der erste für meine drei Macs zu Hause (inklusive Laptop) und der zweite für meinen PC bei der Arbeit. Beide Programme haben verschiedene Back-up-und Sync-Optionen, so dass dies ein Kinderspiel, sobald Pre-Sets eingerichtet wurden. Easy-peasy! Ich bin sicher, es gibt andere Versionen ähnlicher Software für Linux und Ubuntu.

 0
Author: Henk the ThinkTank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-11-28 09:36:29

Sie können ein Synchronisierungsskript wie osync verwenden, das gelöschte Dateien verbreiten und nur geänderte aktualisieren kann. http://www.netpower.fr/osync osync ist rsync-basiert, kann jedoch viele Synchronisierungsszenarien zwischen lokalen Ordnern oder Remote-Ordnern über ssh verarbeiten.

 0
Author: Orsiris de Jong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-08-18 14:28:59