Sincronização de arquivos em tempo real entre vários servidores no modo multi mestre
Existe uma boa ferramenta chamada lsyncd
para sincronizar arquivos entre vários servidores em tempo real. Aqui eu tentei com dois servidores.
Hosts: Servidor1 e Servidor2
SO utilizado: CentOS 7
Instale os pacotes abaixo nos dois servidores.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
gere a chave ssh nos servidores e adicione ao authorized_keys
arquivo. [adicione a chave pública do servidor1 ao servidor2 authorized_keys
e a chave pública do servidor2 ao authorized_keys
arquivo do servidor1 ]
Configuração do Servidor1
Abra /etc/lsyncd.conf
e comente a configuração padrão usando --
no início da linha e adicione a configuração abaixo ao arquivo.
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"
}
}
Altere o IP de destino no target
parâmetro
Você pode alterar o delay
parâmetro conforme sua exigência. Aqui está definido 1 segundo.
Agora crie o diretório de log.
# mkdir -p /var/log/lsyncd
Habilite o lsyncd
serviço para iniciar automaticamente.
# systemctl enable lsyncd.service
Inicie o serviço.
# systemctl start lsyncd.service
Configuração Server2
Siga a mesma configuração do Server1 e altere o target
IP.
Agora a sincronização está definida.
Você pode verificar a atividade em tailf /var/log/lsyncd/lsyncd.log
Agradeço a MelBurslan por sua sugestão.