Синхронізація файлів у реальному часі між декількома серверами в режимі мульти майстер
Існує хороший інструмент 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, і змініть target
IP-адресу.
Тепер синхронізація встановлена.
Ви можете перевірити активність від tailf /var/log/lsyncd/lsyncd.log
Дякую Мелбурслану за його пропозицію.