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.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
ssh-key auf beiden Servern erzeugen und zur authorized_keys
Datei hinzufügen . [öffentlichen Schlüssel von Server1 zu Server2 authorized_keys
und öffentlichen Schlüssel von Server2 zur authorized_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.
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 im target
Parameter.
Sie können den delay
Parameter gemäß Ihren Anforderungen ändern . Hier wird 1 Sekunde eingestellt.
Erstellen Sie nun das Protokollverzeichnis.
# mkdir -p /var/log/lsyncd
Aktivieren Sie den lsyncd
Dienst, um automatisch zu starten.
# systemctl enable lsyncd.service
Starten Sie den Dienst.
# systemctl start lsyncd.service
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.