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.