Synchronizacja plików w czasie rzeczywistym między wieloma serwerami w trybie wielu master
Istnieje dobre narzędzie lsyncd
do synchronizacji plików między wieloma serwerami w czasie rzeczywistym. Tutaj próbowałem z dwoma serwerami.
Hosty: Serwer 1 i Serwer 2
Używany system operacyjny: CentOS 7
Zainstaluj poniższe pakiety na obu serwerach.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
wygeneruj klucz ssh na obu serwerach i dodaj do authorized_keys
pliku. [dodaj klucz publiczny serwera 1 do serwera 2 authorized_keys
i klucz publiczny serwera 2 do authorized_keys
pliku serwera 1 ]
Konfiguracja serwera 1
Otwórz /etc/lsyncd.conf
i skomentuj domyślną konfigurację za pomocą --
na początku linii i dodaj poniższą konfigurację do pliku.
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"
}
}
Zmień docelowy adres IP w target
parametrze.
Możesz zmienić delay
parametr zgodnie ze swoimi wymaganiami. Tutaj ustawia się 1 sekundę.
Teraz utwórz katalog dziennika.
# mkdir -p /var/log/lsyncd
Włącz lsyncd
usługę, aby uruchamiała się automatycznie.
# systemctl enable lsyncd.service
Uruchom usługę.
# systemctl start lsyncd.service
Konfiguracja Server2
Wykonaj tę samą konfigurację, co serwer 1 i zmień target
adres IP.
Teraz synchronizacja jest ustawiona.
Możesz sprawdzić aktywność z tailf /var/log/lsyncd/lsyncd.log
Dzięki MelBurslan za jego sugestię.