Синхронізація файлів у реальному часі між декількома серверами в режимі мульти майстер
Існує хороший інструмент lsyncdдля синхронізації файлів між декількома серверами в режимі реального часу. Тут я спробував з двома серверами.
Хости: Server1 та Server2
ОС, що використовується: CentOS 7
Встановіть нижче пакети на обох серверах.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
генерувати ssh-ключ на обох серверах та додавати у authorized_keysфайл. [додати відкритий ключ сервера1 до файлу сервера2 authorized_keysта відкритий ключ сервера2 до authorized_keysфайлу сервера1 ]
Конфігурація 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
Конфігурація сервера2
Дотримуйтесь тієї ж конфігурації, що і Server1, і змініть targetIP-адресу.
Тепер синхронізація встановлена.
Ви можете перевірити активність від tailf /var/log/lsyncd/lsyncd.log
Дякую Мелбурслану за його пропозицію.