Jak skonfigurować demon rsync na Linux

Jak skonfigurować demon rsync na Linux

W poprzednim artykule zobaczyliśmy kilka podstawowych przykładów korzystania z rsync w systemie Linux do wydajnego przesyłania danych. Jak widzieliśmy, aby zsynchronizować dane z zdalnym maszyną, możemy użyć zarówno zdalnego powłoki ssh albo Demon rsync. W tym artykule skupimy się na tej drugiej opcji i zobaczymy, jak zainstalować i skonfigurować rsyncd na niektórych najczęściej używanych rozkładach Linuksa.

W tym samouczku nauczysz się:

  • Jak zainstalować i skonfigurować demon rsync

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Niezależny od rozkładu
Oprogramowanie
  • Rsync
  • Rsyncd (demon rsync)
Inny Nie są potrzebne specjalne wymagania, aby przestrzegać tego samouczka
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Instalacja

Instalowanie Demon rsync jest naprawdę łatwe, ponieważ pakiet i jego zależności są domyślnie dostępne we wszystkich głównych repozytoriach Linux dystrybucji. NA Debian I Archlinux, pliki związane z demem rsync są zawarte rsync Pakiet, więc musimy tylko zainstalować to drugie. W Debian możemy użyć menedżera pakietów Apt:

$ sudo apt-get instaluj rsync

Zamiast tego w Archlinux używamy Pacmana:

$ sudo pacman -s rsync

Zamiast tego w dystrybucjach takich jak Fedora, rsyncd, Demon rsync, jest dystrybuowany we własnym pakiecie, Rsync-Daemon. W ostatnich wersjach dystrybucji, aby ją zainstalować, możemy użyć DNF Menedżer pakietów. Główny pakiet RSync zostanie zainstalowany jako zależność:



$ sudo dnf instaluj rsync-daemon 

Plik konfiguracyjny rsyncd

Raz rsyncd jest zainstalowany, możemy go skonfigurować za pomocą /etc/rsyncd.conf plik. Plik jest już zawarty w pakietach Archlinux i Fedora, podczas gdy w Debian musi być utworzony od zera. Oto treść pliku na Fedorze:

# /etc /rsyncd: plik konfiguracyjny dla trybu demona rsync # patrz rsyncd.Strona Conf Man, aby uzyskać więcej opcji. # konfiguracja.pid # exclude = lost+found/ # logowanie przesyłania = tak # limit czasu = 900 # ignoruj ​​non -readable = tak # nie kompresuj = *.GZ *.TGZ *.zamek błyskawiczny *.Z *.Z *.RPM *.Deb *.BZ2 # [ftp] # ścieżka = /home /ftp # komentarz = obszar eksportowy ftp 

Wszystkie parametry są komentowane i wyświetlane jako przykład konfiguracji: reprezentują dobry punkt wyjścia do naszej dyskusji. Pierwszą rzeczą, którą musimy zauważyć, jest to, jak rsyncd moduł definiuje:

[ftp] ścieżka = /home /ftp komentarz = obszar eksportu FTP

Moduł jest zdefiniowany w „zwrotce”, która rozpoczyna się od deklaracji nazwy modułu między nawiasami kwadratowymi, w tym przypadku [ftp]. Moduł jest powiązany z katalogiem w systemie plików, określonym z ścieżka argument. Wszystkie parametry podane wewnątrz zwrotki są lokalny, Są więc stosowane tylko do powiązanego modułu; Ustawienia dostarczone przed jakimkolwiek zwrotkami są światowy. Rzućmy okiem na niektóre z nich.



Globalne parametry

Jak właśnie powiedzieliśmy, globalne parametry to te zdefiniowane na początku /etc/rsyncd.conf plik, przed jakąkolwiek definicją modułu lub opcjonalnie wewnątrz [światowy] Sekcja. Tutaj omówimy niektóre z najciekawszych.

Parametr „plik PID”

Ten parametr służy do określenia ścieżki pliku, w którym rsyncd Pid (Identyfikator procesu) zostanie napisane. Domyślnie uruchomienie demona zostanie przerwane, jeśli określony plik już istnieje. Możliwe jest zmiana tego zachowania i pozwolić, aby plik zostanie zastąpiony przez uruchomienie demona rsync z --dparam = pid -file = plik opcja.

Parametr „portu”

Korzystając z tego globalnego parametru, możemy określić alternatywny port dla demona rsync. Domyślnie jest TCP Port 873. Ta opcja może zostać zastąpiona po uruchomieniu demona, używając --Port opcja.

Parametr „adresu”

Możemy użyć globalnego adres parametr do określenia adresu, którego demon rsync będzie słuchać. Adres określony w pliku można zastąpić poprzez uruchomienie demona za pomocą --adres opcja, zapewniając pożądany adres jako argument.

Oprócz parametrów, które widzieliśmy powyżej, w sekcji globalnej możemy również określić Parametry modułu. Kiedy to zrobimy, określone wartości parametrów staną się domyślnymi dla wszystkich modułów.

Parametry modułu

Parametry modułu są określone w sekcji modułu i są stosowane tylko do tej sekcji. Zobaczmy niektóre z nich.

Parametr „ścieżki”

Ten parametr jest obowiązkowy i musi być dostarczany dla każdego modułu. Służy do określenia ścieżki katalogu udostępnionego przez sam moduł.

Parametr „komentarz”

Parametr „komentarz” jest opcjonalny: możemy określić ciąg, który zostanie wyświetlony w pobliżu nazwy modułu, gdy klient poprosi o listę dostępnych.

Zrób moduł odczyt lub zapisz tylko

Domyślnie wszystkie moduły są tworzone jako tylko do odczytu. Oznacza to, że klient może użyć go tylko jako źródła przeniesienia. To zachowanie można zmienić, ustawiając parametr „tylko odczyt” na NIE Lub FAŁSZ. Moduł można również wykonać tylko do zapisu za pomocą pisz tylko parametr i dostarczanie Tak Lub PRAWDA jako wartość. Jeśli ten ostatni parametr zostanie aktywowany, klient nie będzie mógł pobierać plików z modułu. Aby odczytać pliki z modułu lub zapisywać do niego, należy również przestrzegać standardowych uprawnień Unix, więc użytkownik przelew jest uruchamiany.

Parametry UID i GID

UID I kołowacizna Parametry połączone, zdefiniuj uprawnienia, jakie będzie miał przesyłanie. Pierwszy z nich służy do zdefiniowania użytkownika, transfer jest uruchamiany, gdy demon jest uruchamiany jako root (jeśli demon jest uruchamiany z uprawnieniami normalnego użytkownika, użytkownik się nie zmieni). Użytkownik może zostać zidentyfikowany przez jego nazwę użytkownika lub jego numeryczny identyfikator. Ten ostatni definiuje jedną lub więcej nazwy grupy lub identyfikatora grupy do użycia do transferu.

Wartość domyślna dla obu opcji jest nikt, co oznacza, że ​​gdy demon zostanie uruchomiony jako root, transfery będą uruchamiane z uprawnieniami nikt użytkownik i nikt grupa (na Debian grupa nikogo nie istnieje - Nogrupa jest używany).

Parametr „Użyj chroot”

Za pomocą Użyj chroot Parametr, możemy zdefiniować, czy RSync powinien chroot do ścieżki zdefiniowanej modułu przed uruchomieniem przeniesienia. Można to wykorzystać do egzekwowania bezpieczeństwa, ale aby z niego skorzystać, demon musi być skonfigurowany do uruchamiania z uprawnieniami root. Domyślnie ta opcja jest ustawiona na Tak.

Parametr „maksymalne połączenia”

To kolejny bardzo przydatny parametr i służy do zdefiniowania maksymalnej liczby jednoczesnych połączeń obsługiwanych przez demon. Wartość domyślna użyta dla parametru to 0, co oznacza, że ​​nie ustalono limitu. Jeśli podana wartość jest liczbą ujemną, połączenia są całkowicie wyłączone.

Wyklucz i dołącz pliki z przelewu

Czasami możemy chcieć wykluczyć niektóre pliki z przeniesienia: możemy wykonać zadanie za pomocą wykluczać parametr, który akceptuje rozdzieloną przestrzeń listę wzorów. Pliki dopasowane przez wzorce nie zostaną zsynchronizowane. włączać Parametr działa w ten sam sposób, ale służy do wyraźnego definiowania wtrąceń.



Innym sposobem wykluczenia lub jawnego włączenia plików jest użycie Wykluczyć z I Uwzględnij z parametry. Dzięki tym parametrom możemy określić ścieżkę plików zawierających odpowiednio wzorce wykluczenia i włączenia. Pliki muszą zawierać jeden wzór na wiersz.

wykluczać, włączać, Wykluczyć z I Uwzględnij z Parametry mogą pojawiać się tylko raz w module.

Parametr „limit czasu”

Kiedy używamy rsync Klient, możemy zapewnić--koniec czasu Opcja ustawienia maksymalnego limitu czasu we/wy w sekundach: Jeśli w określonym czasie przeniesiono żadne dane, przeniesienie jest przeniesione. koniec czasu opcja Demon rsync może być użyte do zastąpienia limitu czasu zdefiniowanego przez klienta. Może to być przydatne, aby uniknąć oczekiwania martwego klienta nieokreślonego. Limit czasu wyraża się w kilka sekund: 0 jest domyślne i oznacza to, że nie ma limitu czasu.

„Ignoruj ​​niezadowolone” i „nie kompresuj”

zignoruj ​​nie do czytania Używana jest opcja Instruuj rsync, aby ignorować pliki, które nie są czytelne przez użytkownika. Nie kompresuj Zamiast tego jest używana do zapewnienia oddzielonej przestrzeni listy wzorców niewrażliwych na sprawę używanych do wybierania plików, których nie można kompresować podczas transferu. Może to być szczególnie przydatne, aby uniknąć kompresji już kompresowanych plików.

Parametry „Hosty zezwalają” i „hostów zaprzeczają”

Za pomocą Gospodarze pozwalają I Gospodarze zaprzeczają Parametry, możemy określić listę wzorców rozdzielanych przez przecinki, które zostaną dopasowane z klientami hostName lub IP, aby umożliwić lub odmówić dostępu do nich odpowiednio. Dwa parametry można łączyć i pojawiać razem w module: Wzory „zezwalaj” są sprawdzane przed „Odmówieniem”. Domyślnie wszystkie hosty mogą się łączyć.

Przykład konfiguracji modułu

Zróbmy przykład i utwórz moduł na serwerze RSync. Pierwszą rzeczą, którą musimy zrobić, to umożliwić ruch przychodzący TCP Port 873. Jeśli używamy zapory ogniowej, możemy dodać wstępnie skonfigurowaną rsyncd Obsługa strefy, której używamy:

$ sudo firewall-cmd --Permanent --add-service rsyncd && sudo firewall-cmd--reload

Jeśli zamiast tego używamy UFW, możemy uruchomić:

$ sudo ufw zezwala na 873/tcp

Po skonfigurowaniu zapory możemy kontynuować i zdefiniować moduł. Oto nasza konfiguracja:

[LinuxConfig] ścieżka =/mnt/data/rsync comment = ".tekst

Nazwaliśmy nasz moduł „LinuxConfig” i powiązaliśmy /mnt/data/rsync katalog do niego. Dostaliśmy również komentarz. Ustawiamy moduł zarówno czytelny, jak i zapisujący, ustawiając tylko czytać parametr do fałszu i za pośrednictwem wykluczać parametr dostarczyliśmy wzorzec wykluczenia wszystkich plików za pomocą .tekst rozszerzenie.

Zanim użyjemy naszego modułu, musimy rozpocząć demon. Możemy uruchomić rsync jako demon, wywołując program z --Demon Opcja, lub możemy po prostu użyć SystemD do wykonania zadania (pod kapturem usługa SystemD wykonuje to samo polecenie). Zgodnie z dystrybucjami opartymi na Debian, usługa nazywa się rsync; Na Fedorze i Archlinux nazywa się rsyncd:

$ sudo systemctl start rsync

Aby RSYNC uruchomi się automatycznie podczas rozruchu, musimy użyć systemuCtl włączać Podkomenda:

$ sudo systemctl włącz rsync

Ustawiliśmy /mnt/data/rsync katalog należący do nikt użytkownik i Nogrupa grupa (to maszyna debian). Oto jego treść:

$ ls/mnt/data/rsync csv1.Tekst CSV1.tekst TXT2.tekst 

Jak widzimy, katalog zawiera dwa .tekst pliki i jeden .CSV. Jeśli używamy modułu jako źródła w transferie, tylko „CSV1.Uwzględniono plik CSV ”:

$ rsync -Av rsync: // 192.168.0.39/LinuxConfig/ . Otrzymanie przyrostowej listy plików ./ CSV1.CSV 

Wykluczenie zachodzi również, gdy używamy modułu jako miejsca docelowego. Powiedzmy, że tworzymy „CSV2.CSV ”i„ Text3.Pliki TXT ”w naszym bieżącym katalogu roboczym:

$ touch csv2.Tekst CSV3.tekst


Jeśli teraz uruchomimy RSync i użyjemy naszego obecnego katalogu roboczego jako źródła i modułu jako miejsca docelowego, możemy zobaczyć, jak demon odmawia otrzymania „Text3.plik txt ”, ponieważ jest dopasowany przez określony wzór wykluczenia:

$ rsync -Av . rsync: // 192.168.0.39/LinuxConfig Wysyłanie inkrementalnej listy plików Błąd: demon odmówił odbierania pliku „Text3.tekst" ./ CSV2.CSV 

Zauważ, że w powyższych poleceniach użyliśmy URL RSYNC Aby określić adres IP serwera i nazwę modułu, którego chcemy użyć. Jak możemy uzyskać listę wszystkich dostępnych modułów na komputerze? Jest to bardzo łatwe, po prostu uruchamiamy polecenie rsync określające tylko adres serwera w adresie URL:

$ rsync rsync: // 192.168.0.39 Linuxconfig „Przykład modułu demona rsync” 

Wszystkie dostępne moduły i powiązane komentarze zostaną wyświetlone; W tym przypadku tylko „Linuxconfig”.

Wniosek

W tym artykule widzieliśmy, jak zainstalować i skonfigurować demon rsync, na niektórych najczęściej używanych dystrybucjach Linux. Widzieliśmy i nauczyliśmy się korzystać z niektórych dostępnych parametrów globalnych i specyficznych dla modułu, aby zmienić zachowanie demona rsyncd. Wreszcie widzieliśmy przykład konfiguracji modułu. Dla bardziej dogłębnej wiedzy rsyncd, Zawsze możemy zapoznać się z oficjalną instrukcją. To tylko kwestia biegania:

$ man rsyncd.conf

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Rzeczy do zainstalowania na Ubuntu 22.04
  • Linux Pliki konfiguracyjne: Top 30 Najważniejsze
  • Mastering Bash Script Loops
  • Pobierz Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Jak podwójnie rozruch Kali Linux i Windows 10
  • Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć