Przykłady, jak korzystać z RSync dla lokalnych i zdalnych kopii zapasowych danych i synchronizacji

Przykłady, jak korzystać z RSync dla lokalnych i zdalnych kopii zapasowych danych i synchronizacji

RSYNC jest bardzo przydatnym narzędziem, które umożliwia administratorom systemu Linux synchronizacji danych lokalnie lub ze zdalnym systemem plików za pośrednictwem protokołu SSH lub za pomocą użycia Demon rsync. Za pomocą rsync jest wygodniejsze niż zwykłe kopiowanie danych, ponieważ jest w stanie wykryć i synchronizować tylko różnice między źródłem a miejscem docelowym. Program ma opcje zachowania standardowych i rozszerzonych uprawnień systemu plików, kompresji danych podczas transferów i nie tylko. W tym przewodniku zobaczymy najczęściej używane.

W tym samouczku nauczysz się:

  • Jak używać rsync do syncronizacji danych
  • Jak używać rsync ze zdalnym systemem plików za pośrednictwem SSH
  • Jak używać rsync ze zdalnym systemem plików za pośrednictwem demona rsync
  • Jak wykluczyć pliki z synchronizacji

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 Aplikacja RSync i opcjonalnie demon rsync
Inny Nie są potrzebne specjalne wymagania, aby przestrzegać tego przewodnika.
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

RSYNC - Zastosowanie

Zacznijmy od podstawowego użycia rsync. Załóżmy, że mamy katalog na naszym lokalnym systemie plików i chcemy zsynchronizować jego zawartość z innym katalogiem, być może na zewnętrznym urządzeniu USB, aby utworzyć kopię zapasową naszych plików. Ze względu na nasz przykład będzie naszym katalogiem źródłowym /mnt/data/źródło, a nasze miejsce docelowe zostanie zamontowane na /run/media/egdoc/miejsce docelowe. Nasz cel zawiera dwa pliki: plik 1.tekst I plik2.tekst, podczas gdy cel jest pusty. Za pierwszym razem biegamy rsync Wszystkie dane są kopiowane:

Ścieżka docelowa jest ostatnią rzeczą, którą dostarczyliśmy w poleceniu. Jeśli teraz wymieniamy jego zawartość, możemy zobaczyć, że teraz zawiera pliki źródłowe:



$ ls/run/media/egdoc/docelowe/-l ogółem 0 -RW-R-R--. 1 EGDOC EGDOC 0 października 19:42 Plik 1.TXT -RW-R-R--. 1 EGDOC EGDOC 0 października 19:42 File2.tekst

W kolejnych czasach uruchamiamy RSYNC w celu synchronizacji dwóch katalogów, zostaną skopiowane tylko nowe pliki i zmodyfikowane pliki: Zapisuje to dużo czasu i zasobów. Sprawdźmy to: najpierw modyfikujemy zawartość pliku1.TXT wewnątrz katalogu źródłowego:

$ echo linuxconfig>/mnt/data/source/file1.tekst

Następnie będziemy uruchomić rsync Ponownie obserwuj wyjście:

$ rsync -Av/mnt/data/source//run/media/egdoc/docelowe wysyłanie listy listy plików.TXT wysłał 159 bajtów otrzymało 35 bajtów 388.00 bajtów/s. Całkowity rozmiar wynosi 12 Spędu wynosi 0.06

Jedynym skopiowanym plikiem jest ten, który zmodyfikowaliśmy, File1.tekst.

Utwórz kopię lustra źródła do miejsca docelowego

Domyślnie rsync Po prostu upewnij się, że wszystkie pliki wewnątrz katalogu źródłowego (z wyjątkiem jednego określonego jako wyjątki) są kopiowane do miejsca docelowego: nie dba o utrzymanie dwóch katalogów i nie usuwa plików; Dlatego jeśli chcemy utworzyć kopię lustra źródła do miejsca docelowego, musimy użyć --usuwać Opcja, która powoduje usunięcie plików istniejących tylko w miejscu docelowym.

Załóżmy, że tworzymy nowy plik o nazwie plik3.tekst W katalogu docelowym:

$ touch/run/media/egdoc/docelowe/file3.tekst


Plik nie istnieje w katalogu źródłowym, więc jeśli uruchomimy rsync z --usuwać opcja, jest usuwana:

$ rsync -Av - -delete/mnt/data/source//run/media/egdoc/docelowe wysyłanie listy plików do usuwania pliku 3.tekst ./ Wysłane 95 bajtów otrzymało 28 bajtów 246.00 bajtów/s. Całkowity rozmiar to 0 szybkość to 0.00 

Ponieważ ta synchronizacja jest potencjalnie destrukcyjna, możesz najpierw uruchomić rsync z --próba opcja, aby program wyświetlał operacje, które zostałyby wykonane, bez faktycznego modyfikowania systemu plików.

Synchronizacja plików zdalnie

Do tej pory widzieliśmy, jak używać rsync do synchronizacji dwóch lokalnych systemów plików. Program może być również używany do zdalnej synchronizacji plików, używając zdalnej powłoki rsh Lub ssh, albo rsync Demon. Zbadamy obie metody.

Uruchomienie rsync przez SSH

Ze względu na nasz przykład nadal będziemy korzystać z tego samego katalogu źródłowego, którego użyliśmy w poprzednich przykładach, ale jako miejsce docelowe będziemy używać katalogu na zdalnej maszynie z IP 192.168.122.32. Wcześniej skonfigurowałem serwer OpenSSH z loginem opartym na kluczu na komputerze, dlatego nie muszę podawać hasła, aby uzyskać do niego dostęp.

Jak możemy biecrsync przez ssh? Przede wszystkim, aby zdalna synchronizacja działała, RSYNC musi być zainstalowana zarówno na źródle, jak i na zdalnej maszynie. Rsync próbuje skontaktować się z zdalnym systemem plików za pomocą zdalnego programu powłoki, gdy tylko miejsce docelowe lub źródłowe zawiera : postać. W nowoczesnych wersjach rsync ssh jest używany domyślnie; Aby użyć innej zdalnej powłoki lub jawnie zadeklarować powłokę, możemy użyć -mi opcja i podaj ją jako argument. Załóżmy, że nasz katalog docelowy na zdalnej maszynie jest /home/egdoc/docelowe, Możemy uruchomić:

$ rsync -Av -e ssh/mnt/data/source/[email protected]:/home/egdoc/miejsce docelowe

Zwróć uwagę, że określiliśmy miejsce docelowe w formularzu @:/ścieżka/do/Directory.

Kontaktowanie się z zdalną maszyną za pośrednictwem demona rsync

Inną metodą, której możemy użyć do synchronizacji plików z zdalnym komputerem, jest użycie Demon rsync. To oczywiście wymaga instalowanego i działającego demona na komputerze docelowym. Rsync próbuje skontaktować się z maszyną zdalną, rozmawiając z demonem, gdy źródło lub ścieżka docelowa zawiera :: (podwójny okrężnica) separator po specyfikacji hosta lub gdy adres URL RSYNC jest określony jako rsync: //.



Przypuśćmy, że demon rsync słucha na porcie 873 (Domyślnie) na zdalnym komputerze możemy się z nim skontaktować, uruchamiając:

$ rsync -Av/mnt/data/źródło/192.168.122.32 ::moduł/miejsce docelowe

Alternatywnie możemy użyć URL RSYNC:

$ rsync -Av/mnt/data/source/rsync: // 192.168.122.32/moduł/miejsce docelowe

W obu przykładach, moduł (Podświetlone w poleceniu), nie reprezentuje nazwy katalogu na zdalnym komputerze, ale nazwa zasobu, lub moduł w terminologii rsync, skonfigurowanej przez administratora i udostępnionego za pośrednictwem demona rsync. Moduł może wskazywać na dowolną ścieżkę na systemie plików.

Z wyłączeniem plików z synchronizacji

Czasami chcemy wykluczyć niektóre pliki lub katalogi z synchronizacji. Istnieją w zasadzie dwa sposoby wykonania tego zadania: określając wzór wykluczenia bezpośrednio --wykluczać (Wiele wzorców można określić, powtarzając opcję) lub zapisując wszystkie wzorce w pliku (jeden na wiersz). Korzystając z tej ostatniej metody, musimy przekazać ścieżkę pliku jako argument do --Wykluczyć z opcja.

Wszystkie pliki i katalogi pasujące do wzoru zostaną wykluczone z synchronizacji. Na przykład, aby wykluczyć wszystkie pliki za pomocą „.rozszerzenie txt ”, które uruchomilibyśmy:

$ rsync -Av/mnt/data/source//run/media/egdoc/destiner --xclude =*.tekst


Wnioski

W tym artykule szybko spojrzeliśmy na RSync, bardzo przydatne narzędzie, którego możemy użyć do synchronizacji plików i katalogów zarówno w lokalnych, jak i zdalnych systemach plików. Widzieliśmy najczęściej używane opcje i to, co pozwalają nam osiągnąć, jak określić katalogi źródłowe i docelowe oraz metody, których możemy użyć do skontaktowania się z zdalnym systemem plików. Wreszcie widzieliśmy, jak wykluczyć pliki z synchronizacji, określając wzorce wykluczenia bezpośrednio lub w pliku. Rsync ma wiele opcji, zbyt wiele, aby się tutaj wspomnieć. Jak zawsze możemy znaleźć wszystkie potrzebne informacje w podręczniku programu!

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
  • Mastering Bash Script Loops
  • Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć
  • Ubuntu 20.04 Przewodnik
  • Przykłady rsync w Linux
  • Zagnieżdżone pętle w skryptach Bash
  • Big Data Manipulacja dla zabawy i zysku Część 1
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?