Ich habe es selbst noch nicht benutzt, aber kürzlich darüber gelesen. Es gibt einen Daemon namens lsyncd
, von dem ich annehme, dass es genau das tut, was Sie brauchen.
Lesen Sie HIER mehr darüber
Echtzeit-Dateisynchronisierung zwischen mehreren Servern im Multi-Master-Modus
Es gibt ein gutes Tool namens lsyncd
um Dateien zwischen mehreren Servern in Echtzeit zu synchronisieren. Hier habe ich es mit zwei Servern versucht.
Hosts:Server1 und Server2
Verwendetes Betriebssystem:CentOS 7
Installieren Sie die folgenden Pakete auf beiden Servern.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
SSH-Schlüssel auf beiden Servern generieren und zu authorized_keys
hinzufügen Datei. [Öffentlichen Schlüssel von Server1 zu authorized_keys
von server2 hinzufügen und öffentlichen Schlüssel von Server2 zu authorized_keys
von server1 Datei]
Server1-Konfiguration
Öffnen Sie /etc/lsyncd.conf
und kommentieren Sie die Standardkonfiguration mit --
aus am Anfang der Zeile und fügen Sie die folgende Konfiguration zur Datei hinzu.
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
delay = 1
}
sync {
default.rsync,
source="/home/test/public_html/",
target="server2:/home/test/public_html/",
rsync = {
compress = true,
acls = true,
verbose = true,
owner = true,
group = true,
perms = true,
rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
}
}
Ändern Sie die Ziel-IP in target
Parameter.
Sie können den delay
ändern Parameter gemäß Ihrer Anforderung. Hier ist es auf 1 Sekunde eingestellt.
Erstellen Sie nun das Log-Verzeichnis.
# mkdir -p /var/log/lsyncd
Aktivieren Sie die lsyncd
Dienst automatisch starten.
# systemctl enable lsyncd.service
Starten Sie den Dienst.
# systemctl start lsyncd.service
Server2-Konfiguration
Folgen Sie der gleichen Konfiguration wie Server1 und ändern Sie den target
IP.
Nun ist die Synchronisation eingestellt.
Sie können die Aktivität unter tailf /var/log/lsyncd/lsyncd.log
überprüfen
Danke an MelBurslan für seinen Vorschlag.
Inotify-Tools
Stellen Sie eine Schnittstelle zu inotify
bereit , bestehend aus:
inotifywait
Dieser Befehl blockiert einfach für inotify-Ereignisse, wodurch er für die Verwendung in Shell-Skripten geeignet ist. Es kann jeden Satz von Dateien und Verzeichnissen überwachen und ganze Verzeichnisbäume rekursiv überwachen.
inotifywatch
Dieser Befehl sammelt Nutzungsstatistiken des Dateisystems und gibt die Anzahl der einzelnen Inotify-Ereignisse aus.