Synchronisation de fichiers en temps réel entre plusieurs serveurs en mode multi maître
Il existe un bon outil appelé lsyncd
pour synchroniser les fichiers entre plusieurs serveurs en temps réel. Ici, j'ai essayé avec deux serveurs.
Hôtes: Server1 et Server2
Système d'exploitation utilisé: CentOS 7
Installez les packages ci-dessous sur les deux serveurs.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
générer la clé ssh dans les deux serveurs et l'ajouter au authorized_keys
fichier. [ajouter la clé publique de server1 au serveur2 authorized_keys
et la clé publique de server2 au authorized_keys
fichier de server1 ]
Configuration de Server1
Ouvrez /etc/lsyncd.conf
et commentez la configuration par défaut en utilisant --
au début de la ligne et ajoutez la configuration ci-dessous au fichier.
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"
}
}
Modifiez l'IP cible en target
paramètre.
Vous pouvez changer le delay
paramètre selon votre condition. Ici, il est réglé sur 1 seconde.
Créez maintenant le répertoire des journaux.
# mkdir -p /var/log/lsyncd
Activez le lsyncd
service pour démarrer automatiquement.
# systemctl enable lsyncd.service
Démarrez le service.
# systemctl start lsyncd.service
Configuration de Server2
Suivez la même configuration que Server1 et changez l' target
IP.
Maintenant, la synchronisation est définie.
Vous pouvez vérifier l'activité à partir de tailf /var/log/lsyncd/lsyncd.log
Merci à MelBurslan pour sa suggestion.