Sincronização de arquivos em tempo real entre vários servidores no modo multi mestre
Existe uma boa ferramenta chamada lsyncdpara 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_keysarquivo. [adicione a chave pública do servidor1 ao servidor2 authorized_keyse a chave pública do servidor2 ao authorized_keysarquivo do servidor1 ]
Configuração do Servidor1
Abra /etc/lsyncd.confe 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 targetparâmetro
Você pode alterar o delayparâmetro conforme sua exigência. Aqui está definido 1 segundo.
Agora crie o diretório de log.
# mkdir -p /var/log/lsyncd
Habilite o lsyncdserviç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 targetIP.
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.