Echtzeit-Dateisynchronisation zwischen mehreren Servern im Multi-Master-Modus
Es gibt ein gutes Tool lsyncdzum 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_keysDatei hinzufügen . [öffentlichen Schlüssel von Server1 zu Server2 authorized_keysund öffentlichen Schlüssel von Server2 zur authorized_keysDatei von Server1 hinzufügen ]
Server1 Konfiguration
Öffnen /etc/lsyncd.confund 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 targetParameter.
Sie können den delayParameter gemäß Ihren Anforderungen ändern . Hier wird 1 Sekunde eingestellt.
Erstellen Sie nun das Protokollverzeichnis.
# mkdir -p /var/log/lsyncd
Aktivieren Sie den lsyncdDienst, 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 targetIP- 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.