Gibt es ein Tool zum Synchronisieren von Dateien zwischen zwei oder mehr Linux-Servern unmittelbar nach dem Schreiben der Datei auf die Festplatte? Der rsync
Befehl passt nicht zu mir, denn wenn ich rsync
Cron einstelle , kann ich mindestens 1 Minute einstellen, aber ich brauche ihn in Echtzeit.
linux
files
synchronization
Sourav
quelle
quelle
Antworten:
Habe es selbst nicht benutzt, aber kürzlich darüber gelesen. Es gibt einen Daemon namens
lsyncd
, von dem ich annehme, dass er genau das tut, was Sie brauchen.Lesen Sie HIER mehr darüber
quelle
lsyncd
verwendetinotify
& sollte auf fs-Ebene am schnellsten sein. Mehr unter github.com/axkibe/lsyncd . Von dieser Seite aus: Lsyncd überwacht eine Ereignisüberwachungsschnittstelle für lokale Verzeichnisbäume (inotify oder fsevents). Es aggregiert und kombiniert Ereignisse für einige Sekunden und erzeugt dann einen (oder mehrere) Prozesse, um die Änderungen zu synchronisieren. Standardmäßig ist dies rsync. Lsyncd ist somit eine leichte Live Mirror-Lösung, die vergleichsweise einfach zu installieren ist und keine neuen Dateisysteme oder Blockgeräte erfordert und die Leistung des lokalen Dateisystems nicht beeinträchtigt.Inotify-Tools
Stellen Sie eine Schnittstelle zur Verfügung
inotify
, bestehend aus:inotifywait
Dieser Befehl blockiert einfach für inotify-Ereignisse, sodass er für die Verwendung in Shell-Skripten geeignet ist. Es kann beliebige Dateien und Verzeichnisse überwachen und ganze Verzeichnisbäume rekursiv überwachen.
inotifywatch
Dieser Befehl sammelt Statistiken zur Dateisystemnutzung und gibt die Anzahl der inotify-Ereignisse aus.
quelle
Echtzeit-Dateisynchronisation zwischen mehreren Servern im Multi-Master-Modus
Es gibt ein gutes Tool
lsyncd
zum Synchronisieren von Dateien zwischen mehreren Servern in Echtzeit. Hier habe ich es mit zwei Servern versucht.Hosts: Server1 und Server2
Verwendetes Betriebssystem: CentOS 7
Installieren Sie die folgenden Pakete auf beiden Servern.
ssh-key auf beiden Servern erzeugen und zur
authorized_keys
Datei hinzufügen . [öffentlichen Schlüssel von Server1 zu Server2authorized_keys
und öffentlichen Schlüssel von Server2 zurauthorized_keys
Datei von Server1 hinzufügen ]Server1 Konfiguration
Öffnen
/etc/lsyncd.conf
und kommentieren Sie die Standardkonfiguration mit--
am Anfang der Zeile und fügen Sie die folgende Konfiguration zur Datei hinzu.Ändern Sie die Ziel-IP im
target
Parameter.Sie können den
delay
Parameter gemäß Ihren Anforderungen ändern . Hier wird 1 Sekunde eingestellt.Erstellen Sie nun das Protokollverzeichnis.
Aktivieren Sie den
lsyncd
Dienst, um automatisch zu starten.Starten Sie den Dienst.
Server2-Konfiguration
Befolgen Sie die gleiche Konfiguration wie für Server1 und ändern Sie die
target
IP- Adresse .Jetzt ist die Synchronisation eingestellt.
Sie können die Aktivität von überprüfen
tailf /var/log/lsyncd/lsyncd.log
Vielen Dank an MelBurslan für seinen Vorschlag.
quelle
Syncthing könnte eine Option sein. Es ist extrem schnell, die Übertragung erfolgt verschlüsselt und es gibt Clients für mehrere Plattformen. Mit "inotify" werden geänderte Dateien sofort synchronisiert.
quelle
Sie müssten dies mit einer Lösung vom Typ eines Cluster-Dateisystems angehen - eine einfache Synchronisierung zwischen den beiden Computern gibt Ihnen keine Echtzeitantwort.
quelle
"SIOS Protection Suite for Linux" kann dies auf AWS anbieten.
http://www.linuxclustering.net/2016/03/21/step-by-step-how-to-configure-a-linux-failover-cluster-in-amazon-ec2-without-shared-storage-amazon- aws-sanless-cluster / # InstallConfigureCluster
quelle