jak używać Rsync z przykładami

Rsync jest popularnym narzędziem do synchronizacji plików, zarówno lokalnie, jak i zdalnie. W przeciwieństwie do innych narzędzi synchronizacji, rsync używa interesującego algorytmu, który minimalizuje zużycie przepustowości. To po prostu przenosi część pliku(ów), które zostały zmienione.

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

Rsync

rsync oznacza termin zdalna synchronizacja. 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 używanego przez rsync do synchronizacji. W tym artykule rsync zawsze będzie oznaczał narzędzie, a nie protokół.

ze względu na swoją popularność, rsync jest dostępny na prawie każdym systemie Linux i UNIKSOPODOBNYM. Jest duża szansa, że jest fabrycznie zainstalowany. Jeśli nie, zrób trochę badań na temat instalacji rsync w systemie.

oto krótka lista funkcji, które oferuje rsync.

  • kopiowanie katalogów
  • Łatwa Konfiguracja kopii zapasowej
  • może działać przez SSH
  • może działać jako demon/serwer
  • przechowywanie uprawnień do plików

użycie Rsync

zanim przejdziemy do rsync, potrzebujemy kilku atrap plików do pracy. Najpierw stwórzmy fałszywy katalog.

$ mkdir-V primary

Po utworzeniu nadszedł czas, aby utworzyć kilka plików atrapy. Aby utworzyć plik, użyję polecenia touch. Dowiedz się więcej o poleceniu dotyk.

$ Touch dummy{1..20}

Voila! Jesteśmy teraz gotowi do użycia rsync do wykonywania działań przy użyciu tych atrap plików.

struktura poleceń Rsync

Rsync wykorzystuje następującą strukturę poleceń.

$ rsync<opcja><src><cel>

Synchronizuj katalogi lokalne

teraz nadszedł czas, aby użyć rsync do synchronizowania plików w wielu miejscach docelowych. W tym przykładzie będziemy synchronizować zawartość dir_primary z dir_target.

$ mkdir-V target

powiedz rsync, aby zsynchronizował zawartość obu katalogów.

$ rsync-v-r primary/target

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

-v: mówi rsync do uruchomienia w trybie gadatliwym
-R: rekurencyjny, wymagany do synchronizacji katalogów.

w następnym przykładzie użyjemy innej flagi.

$ rsync-V-a primary/target

-a: flaga kombinacji oznaczająca „archiwum”.

używając tej flagi, rsync zsynchronizuje zawartość rekurencyjnie zachowując dowolne pliki symboliczne, specjalne / urządzenia, czasy modyfikacji, uprawnienia do plików, grupę, właściciela itp. Jest częściej używana niż flaga „-r”. W przypadku archiwizacji jest to bardziej zalecana metoda.

Czy zauważyłeś, że we wszystkich poleceniach, które wykonaliśmy do tej pory, w przypadku source, zawsze zachowujemy „/” po nazwie katalogu? Ma to na celu poinformowanie 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 na przykładzie.

$ rsync-V-podstawowy cel

Sprawdź wynik wyjściowy.

$ tree target /

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

test Rsync Uruchom

przed uruchomieniem polecenia rsync zawsze ważne jest sprawdzenie, 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 primary/target

$ rsync-avn primary target

tutaj, wyjście pokazuje, co rsync wykonałby, gdyby polecenie zostało faktycznie uruchomione. Za każdym razem, gdy testujesz, nie zapomnij użyć flagi „-v”, aby uzyskać dokładne odwzorowanie tego, co się dzieje.

Rsync poprzez zdalne połączenie

jest to kolejna ciekawa funkcja obsługująca rsync. Jeśli Twoja lokalizacja kopii zapasowej znajduje się gdzieś zdalnie, możesz łatwo skonfigurować rsync do wykonywania kopii zapasowej w zdalnej lokalizacji przez SSH. Jednak obie maszyny muszą mieć zainstalowany rsync. Co więcej, oba systemy muszą również mieć ustawione klucze SSH.

gotowy? Zaczynajmy. Na początku to synchronizacja archiwum.

$ rsync-a<local_dir><nazwa użytkownika><remote_host><
destination_dir>

tutaj, Ta operacja nazywa się „push”, ponieważ wypycha katalog z systemu lokalnego do systemu zdalnego. Przeciwieństwo jest znane jako”pull”.

$ rsync-a <nazwa użytkownika><remote_host><source_dir><local_dir>

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

przydatne opcje rsync

Rsync obsługuje mnóstwo opcji. Wszystkie służą swojemu celowi. Jednak w większości przypadków tylko kilka z nich jest używanych przez większość czasu. W tej sekcji, rzućmy okiem na kilka przydatnych opcji rsync.

w większości przypadków pliki, które chcesz zsynchronizować, nie są kompresowane. Korzystając z kompresji, możesz zaoszczędzić czas i przepustowość kosztem nieco dodatkowej mocy obliczeniowej. Rsync domyślnie oferuje kompresję. Aby wykonać synchronizację skompresowaną, Użyj flagi „- z”.

$ rsync-avz<źródło><cel>

ta ciekawa flaga łączy funkcję zarówno flagi „-progress”, jak i „-partial”. Pierwszym z nich jest pokazanie paska postępu transferu, a drugim jest umożliwienie wznowienia przerwanego transferu. Obie te cechy są połączone w flagę „- P”.

$ rsync -avzP <source><destination>

Now, let’s check out how rsync handles file syncing intelligently. Run the previous command again.

$ rsync-avzP<źródło><cel>

tutaj rsync nie przesłał ponownie wszystkich plików. Zamiast tego pominął te, które w ogóle się nie zmieniły. W tym przykładzie pominięto wszystkie pliki, ponieważ wszystkie znajdują się w katalogu docelowym.

Co jeśli usunąłeś Plik z katalogu źródłowego? Domyślnie rsync nie usunie niczego z katalogu docelowego. Aby wymusić usunięcie plików rsync, Użyj flagi „- delete”. Użyj jednak suchego biegu, aby sprawdzić, czy polecenie działa tak, jak chcesz.

$ rsync-avn –delete<źródło><cel>

$ rsync-avn –exclude=<wzór> –include=<wzór>

Możesz również zdefiniować największy rozmiar pliku, który rsync powinien zsynchronizować. Aby to zrobić, użyj flagi „- max-size”, po której następuje Rozmiar pliku.

$ rsync-avn –max-size=’10K’ <źródło><cel>

rsync ma Inną ciekawą funkcję w swoim rękawie. Nie potrzebujesz już pliku źródłowego po synchronizacji? Rsync może to zrobić, nie ma problemu. Upewnij się jednak, że nie używasz rsync z flagą „-delete”. W przeciwnym razie rsync usunie zsynchronizowane pliki z miejsca docelowego!

$ rsync-AV –remove-source-files<źródło><cel>

końcowe przemyślenia

to tylko kilka typowych i prostych scenariuszy użycia rsync. Oferuje znacznie więcej niż to. Możliwe jest automatyzowanie operacji rsync za pomocą demona rsync lub innych skryptów. Mam nadzieję, że ten przewodnik był pomocny w rozpoczęciu pracy z rsync.

interesuje cię więcej rsync? Cóż, możesz użyć rsync jako kopiarki plików. Jest bardziej wydajny i inteligentny niż cp. Więcej szczegółowych funkcji i zastosowań można znaleźć na stronie podręcznika rsync.

$ man rsync

Enjoy!



Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.