Синхронизация файлов в реальном времени между несколькими серверами в режиме нескольких мастеров
Существует хороший инструмент lsyncd
для синхронизации файлов между несколькими серверами в режиме реального времени. Здесь я попробовал с двумя серверами.
Хосты: Сервер1 и Сервер2
Используемая ОС: CentOS 7
Установите ниже пакеты на обоих серверах.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
сгенерируйте ssh-ключ на обоих серверах и добавьте в authorized_keys
файл. [добавить открытый ключ server1 к server2 authorized_keys
и открытый ключ server2 к authorized_keys
файлу server1 ]
Конфигурация Server1
Откройте /etc/lsyncd.conf
и закомментируйте конфигурацию по умолчанию, используя --
в начале строки, и добавьте ниже конфигурацию в файл.
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"
}
}
Измените целевой IP в target
параметре.
Вы можете изменить delay
параметр согласно вашему требованию. Здесь установлено 1 секунда.
Теперь создайте каталог журналов.
# mkdir -p /var/log/lsyncd
Включите lsyncd
сервис для автоматического запуска.
# systemctl enable lsyncd.service
Запустите сервис.
# systemctl start lsyncd.service
Конфигурация Server2
Следуйте той же конфигурации, что и Server1, и измените target
IP.
Теперь синхронизация установлена.
Вы можете проверить активность от tailf /var/log/lsyncd/lsyncd.log
Спасибо MelBurslan за его предложение.