Sincronizzazione dei file in tempo reale tra più server in modalità multi master
Esiste un buon strumento chiamato lsyncd
per sincronizzare i file tra più server in tempo reale. Qui ho provato con due server.
Host: Server1 e Server2
Sistema operativo utilizzato: CentOS 7
Installa i pacchetti seguenti su entrambi i server.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
genera ssh-key in entrambi i server e aggiungi al authorized_keys
file. [aggiungi la chiave pubblica di server1 al server2 authorized_keys
e la chiave pubblica di server2 al authorized_keys
file server1 ]
Configurazione Server1
Apri /etc/lsyncd.conf
e commenta la configurazione predefinita usando --
all'inizio della riga e aggiungi la configurazione seguente al file.
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"
}
}
Modifica l'IP di destinazione nel target
parametro.
È possibile modificare il delay
parametro in base alle proprie esigenze. Qui è impostato 1 secondo.
Ora crea la directory di registro.
# mkdir -p /var/log/lsyncd
Abilita il lsyncd
servizio per l'avvio automatico.
# systemctl enable lsyncd.service
Avvia il servizio.
# systemctl start lsyncd.service
Configurazione Server2
Seguire la stessa configurazione di Server1 e modificare l' target
IP.
Ora la sincronizzazione è impostata.
Puoi controllare l'attività da tailf /var/log/lsyncd/lsyncd.log
Grazie a MelBurslan per il suo suggerimento.