Czy jest dostępne narzędzie do synchronizacji plików między dwoma lub więcej serwerami Linux bezpośrednio po zapisaniu pliku na dysku? rsync
Komenda nie pasuje mi na tym, bo jeśli ja ustawić rsync
w cron, minimalny czas można ustawić to 1 minuta, ale muszę go na podstawie czasu rzeczywistego.
linux
files
synchronization
Sourav
źródło
źródło
Odpowiedzi:
Sam go nie używałem, ale ostatnio o nim czytałem. Istnieje demon o nazwie
lsyncd
, który, jak przypuszczam, robi dokładnie to, czego potrzebujesz.Przeczytaj więcej na ten temat TUTAJ
źródło
lsyncd
używainotify
i powinien być najszybszy na poziomie fs. Więcej na github.com/axkibe/lsyncd . Z tej strony: Lsyncd obserwuje interfejs monitorowania zdarzeń lokalnych drzew katalogów (inotify lub fsevents). Agreguje i łączy zdarzenia przez kilka sekund, a następnie spawnuje jeden (lub więcej) procesów w celu synchronizacji zmian. Domyślnie jest to rsync. Lsyncd jest zatem lekkim rozwiązaniem do tworzenia kopii lustrzanych na żywo, które jest stosunkowo łatwe do zainstalowania, nie wymaga nowych systemów plików ani blokuje urządzeń i nie wpływa na wydajność lokalnego systemu plików.Narzędzia Inotify
Zapewnij interfejs
inotify
składający się z:inotifywait
To polecenie po prostu blokuje zdarzenia inotify, dzięki czemu jest odpowiednie do użycia w skryptach powłoki. Może oglądać dowolny zestaw plików i katalogów oraz rekurencyjnie oglądać całe drzewa katalogów.
inotifywatch
To polecenie zbiera statystyki użytkowania systemu plików i zlicza dane wyjściowe każdego zdarzenia inotify.
źródło
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.
wygeneruj klucz ssh na obu serwerach i dodaj do
authorized_keys
pliku. [dodaj klucz publiczny serwera 1 do serwera 2authorized_keys
i klucz publiczny serwera 2 doauthorized_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.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.
Włącz
lsyncd
usługę, aby uruchamiała się automatycznie.Uruchom usługę.
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ę.
źródło
Synchronizacja może być opcją. Jest niezwykle szybki, transfer jest szyfrowany, a klienci mają wiele platform. Używa „inotify” do natychmiastowej synchronizacji zmienionych plików.
źródło
Trzeba do tego podejść przy pomocy klastrowego rozwiązania typu systemu plików - prosta synchronizacja między dwoma komputerami nie da odpowiedzi w czasie rzeczywistym.
źródło
„SIOS Protection Suite for Linux” może to oferować w AWS.
http://www.linuxclustering.net/2016/03/21/step-by-step-how-to-configure-a-linux-failover-cluster-in-amazon-ec2-without-shared-storage-amazon- aws-sanless -uster / # InstallConfigureCluster
źródło