Jak używać rsync z przykładami

Jak używać rsync z przykładami
RSync to popularne narzędzie do synchronizacji plików, zarówno lokalnie, jak i zdalnie. W przeciwieństwie do innych narzędzi synchronicznych, RSYNC wykorzystuje interesujący algorytm, który minimalizuje zużycie przepustowości. Po prostu przesuwa część plików, które się zmieniły.

To potężne narzędzie, które może służyć w wielu sytuacjach. W tym artykule pokażę, jak zacząć z RSync z demonstracją. Demonstracja zostanie wykonana na Ubuntu 18.04.

Rsync

Rsync oznacza termin Synchronizacja zdalna. Pomimo nazwy może obsługiwać synchronizację plików zdalnie i lokalnie. Termin RSync jest również używany w odniesieniu do protokołu RSync, którego RSYNC używa do synchronizacji. W tym artykule Rsync zawsze oznacza narzędzie, a nie protokół.

Ze względu na swoją popularność, RSYNC jest dostępny w prawie każdym systemie Linux i Unix. Istnieje duża szansa, że ​​jest wstępnie zainstalowany. Jeśli nie, wykonaj małe badania dotyczące instalacji RSYNC w swoim systemie.

Oto krótka lista funkcji ofert rsync.

  • Kopiowanie katalogu
  • Łatwa konfiguracja kopii zapasowej
  • Może działać nad SSH
  • Może działać jako demon/serwer
  • Zatrzymanie uprawnień do pliku

Zastosowanie rsync

Przed wskoczeniem do rsync potrzebujemy manekina do pracy. Najpierw stwórzmy manekin.

$ mkdir -v podstawowe

Po utworzeniu nadszedł czas na utworzenie garstki fikcji. Aby utworzyć plik, będę używać polecenia dotykowego. Dowiedz się więcej o poleceniu dotyku.

$ Touch Dummy 1… 20

Voila! Jesteśmy teraz gotowi użyć rsync do wykonywania działań za pomocą tych fiktów.

Struktura polecenia rsync

Rsync używa następującej struktury poleceń.

$ rsync

Synchronizuj lokalne katalogi

Teraz nadszedł czas, aby użyć rsync do synchronizacji plików w wielu miejscach docelowych. W tym przykładzie zsynchronizujemy zawartość dir_primary do dir_target.

$ mkdir -v cel

Powiedz Rsync, aby zsynchronizował zawartość obu katalogów.

$ rsync -v -r podstawowy/ cel

Tutaj użyliśmy dwóch różnych argumentów.

-v: Każe Rsync, aby wpadł w tryb werbose
-R: Rekurencyjny, wymagany do synchronizacji katalogu.

W następnym przykładzie będziemy używać innej flagi.

$ rsync -v -a podstawowy/ cel

-A: Flaga kombinacji, która oznacza „archiwum”.

Korzystając z tej flagi, RSYNC zsynchronizuje zawartość rekurencyjnie, zachowując dowolne pliki symboliczne, specjalne/urządzenia, czasy modyfikacji, uprawnienia do plików, grupa, właściciel itp. Jest częściej używany niż flaga „-R”. W przypadku archiwalnego jest to bardziej zalecana metoda.

Czy zauważyłeś, że we wszystkich poleceniach, które do tej pory uruchomiliśmy, w przypadku źródła zawsze zachowujemy „/” po nazwie katalogu? To ma powiedzieć Rsync, że źródłem jest cała zawartość katalogu źródłowego. Jeśli „/” na końcu katalogu źródłowego nie jest używany, RSYNC po prostu utworzy kopię katalogu źródłowego zamiast jego zawartości.

Sprawdźmy to z przykładem.

$ rsync -v -A główny cel

Sprawdź wynik wyjściowy.

$ Tree Target/

Przez większość czasu nie jest to coś, czego potrzebujemy. Jednak w zależności od sytuacji może się przydać.

RSYNC Test

Przed uruchomieniem polecenia rsync zawsze ważne jest, aby sprawdzić, czy polecenie wykona akcję zgodnie z oczekiwaniami. Jeśli chcesz przetestować akcję RSync dla określonego polecenia, użyj flagi „-n” lub „-dry-run”.

$ rsync -Avn podstawowy/ cel
$ rsync -Avn główny cel

Tutaj dane wyjściowe pokazuje, co rsync wykonałby, gdyby polecenie rzeczywiście zostało uruchomione. Ilekroć testujesz, nie zapomnij użyć flagi „-V”, aby uzyskać dokładną reprezentację tego, co się dzieje.

Rsync przez zdalne połączenie

To kolejna interesująca funkcja obsługi Rsync. Jeśli lokalizacja kopii zapasowej jest gdzieś zdalnie, możesz łatwo skonfigurować RSync, aby wykonać kopię zapasową w odległej lokalizacji za pośrednictwem SSH. Jednak oba maszyny muszą mieć zainstalowane rsync. Ponadto oba systemy muszą również mieć zestaw klawiszy SSH.

Gotowy? Zacznijmy. Na początku jest to synchronizacja archiwum.

$ rsync -a @:<
Destination_dir>

Tutaj operacja ta nazywa się „pchnięciem”, ponieważ przesuwa katalog z systemu lokalnego do zdalnego systemu. Przeciwnie jest znane jako „ciąg”.

$ rsync -a @:

Rsync traktuje pierwszy argument jako źródło, drugi jako miejsce docelowe.

Przydatne opcje rsync

Rsync obsługuje mnóstwo opcji. Wszyscy służą własnym celowi. Jednak w przeważającej części przez większość czasu używana jest tylko garstka. W tej sekcji rzućmy okiem na kilka przydatnych opcji RSYNC.

Przez większość czasu pliki, które zamierzasz zsynchronizować. Korzystając z kompresji, możesz zaoszczędzić zarówno czas, jak i przepustowość kosztem nieco dodatkowej mocy przetwarzania. Rsync domyślnie oferuje kompresję. Aby wykonać skompresowaną synchronizację, użyj flagi „-Z”.

$ rsync -Avz

Ta interesująca flaga łączy funkcję flagi zarówno „-progress”, jak i „-para”. Pierwszym z nich jest pokazanie paska postępu transferu, a drugim jest umożliwienie wznowienia przerwanego transferu. Obie te funkcje są połączone w flagę „-p”.

$ rsync -Avzp

Teraz sprawdźmy, w jaki sposób RSYNC obsługuje inteligentnie synchronizację plików. Uruchom poprzednie polecenie.

$ rsync -Avzp

Tutaj rsync nie przesłał wszystkich plików. Zamiast tego pominęło tych, którzy w ogóle się nie zmieniły. W tym przykładzie pominął wszystkie pliki, ponieważ wszystkie są obecne w katalogu docelowym.

Co jeśli usuniesz plik z katalogu źródłowego? Domyślnie rsync nie usunie niczego z katalogu docelowego. Aby wymusić usuwanie plików rsync, użyj flagi „-Delete”. Jednak użyj suchego biegu, aby przetestować, jeśli polecenie działa tak, jak chcesz.

$ rsync -Avn - -delete

Domyślnie RSync zsynchronizuje każdy plik/katalog ze źródła do katalogu docelowego. W niektórych sytuacjach możesz uwzględnić/wykluczyć niektóre pliki z synchronizacji. RSYNC oferuje przydatne opcje, takie jak „-exclude” i „-include”, aby wykluczyć/dołączyć niektóre pliki. Przekaż wzorzec pliku jako wartość dla tych argumentów.

$ rsync -Avn --exclude = --obejmować =

Możesz także zdefiniować największy rozmiar pliku, który RSYNC powinien zsynchronizować. Aby to zrobić, użyj flagi „-max wielkości”, a następnie rozmiar pliku.

$ rsync -Avn - -Max -size = '10K'

Rsync ma kolejną interesującą funkcję w rękawie. Nie potrzebuję już pliku źródłowego po zsynchronizacji? Rsync może to zrobić, nie ma problemu. Upewnij się jednak, że nie prowadzisz rsync z flagą „-Delete”. W przeciwnym razie rsync usunie synchronizowane pliki z miejsca docelowego!

$ rsync -Av--Remove-Source Files

Końcowe przemyślenia

To tylko jakiś powszechny i ​​prosty scenariusz wykorzystania rsync. Oferuje znacznie więcej niż to. Możliwe jest zautomatyzowanie operacji RSYNC za pomocą demona rsync lub innych skryptów. Mamy nadzieję, że ten przewodnik był pomocny w rozpoczęciu pracy z RSYNC.

Zainteresowany większą liczbą rsync? Cóż, możesz użyć rsync jako kopiarki pliku. Jest bardziej wydajny i inteligentny niż CP. Bardziej szczegółowe funkcje i użycie można znaleźć na stronie Rsync Man.

$ man rsync

Cieszyć się!