Linux Tutorial: Synchronizacja danych z narzędziem Rsync

Replikacja danych pomiędzy wieloma maszynami, szczególnie gdy pracujemy z dużymi plikami, może się okazać procesem długim i nieskutecznym, jeżeli do pracy nie zaprzęgniemy odpowiednich narzędzi.
Rsync, czyli:
(z ang. remote synchronization – zdalna synchronizacja) – protokół synchronizacji plików przez sieć.
Źródło: wikipedia.org
pozwala na szybką wymianę plików po między maszynami zdalną i lokalną.
Zalety Rsync
Jakie korzyści płyną z zastosowania narzędzia Rsync? Dlaczego do wymiany danych nie zastosować SCP?
Poniżej przedstawiam różnice pomiędzy protokołami SCP i Rsync w kontekście przenoszenia danych pomiędzy maszynami oraz powód, dla którego narzędzie Rsync może okazać się dla nas lepszym wyborem.
O SCP dowiesz się więcej w jednej z moich poprzednich publikacji.
Różnica | SCP | Rsync | Dlaczego wybrać Rsync? |
---|---|---|---|
transmisja danych | Kopiowane są całe pliki | Kopiowane są jedynie różnice w plikach | Zyskujemy na czasie ze względu na mniejszą ilość danych do wymiany |
wznawianie przerwanych transferów | Brak możliwości wznowienia | Proces kopiowania plików może być wznowiony | Ze względu na zastosowany algorytm do transmisji danych, Rsync umożliwia wznawianie przerwanych połączeń |
Wymagania
Narzędzie Rsync domyślnie nie korzysta z algorytmu do szyfrowania danych. Ze względów bezpieczeństwa, konieczne jest aby maszyna zdalna, z którą wchodzimy w interakcje zezwalała na połączenie przez protokół SSH.
Dowiedz się jak zezwolić na połączenie przychodzące SSH na maszynie zdalnej za pomocą narzędzia UFW.
Wymiana danych
Poniżej przedstawiam przykłady wykorzystania narzędzia Rsync do synchronizacji katalogów oraz plików z możliwością wznowienia przerwanej transmisji danych.
Synchronizacja plików
Aby zsynchronizować pliki z możliwością wznowienia transmisji, należy w wierszu poleceń wprowadzić poniższą zawartość:
$ rsync -P /my/local/path/myfile user@host:/my/remote/path
Synchronizacja katalogów
Przykład synchronizacji katalogu pomiędzy maszynami zdalną i lokalną:
$ rsync -r -P /my/local/path/ user@host:/my/remote/path
Zwróć uwagę na ukośnik po ścieżce do katalogu lokalnego. Ukośnik po ścieżce do katalogu to informacja dla algorytmu, że chcemy synchronizować zawartość katalogu, a nie cały katalog.
Polecenie:
$ rsync -r -P /my/local/path user@host:/my/remote/path
utworzyłoby katalog path w katalogu /my/remote/path na maszynie zdalnej.
Wnioski
Narzędzie Rsync jest szczególnie pomocne gdy mamy do czynienia z dużymi plikami. Algorytm stosowany przez Rsync pozwala przyśpieszyć proces wymiany danych poprzez kopiowanie tylko różnic w plikach lub katalogach pomiędzy maszynami zdalną i lokalną.
Sprawdź też moje inne publikacje
- Podtrzymywanie procesów z narzędziem Supervisor
- Darmowy certyfikat SSL/TLS z Let's Encrypt
- Repozytorium Git na bitbucket.org via SSH
- Prywatne repozytoria z narzędziem Composer
- Web development z narzędziem Docker

This post has received a 15.16% upvote from @lovejuice thanks to @piotr42. They love you, so does Aggroed. Please be sure to vote for Witnesses at https://steemit.com/~witnesses.
Congratulations @piotr42! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Click on any badge to view your own Board of Honor on SteemitBoard.
To support your work, I also upvoted your post!
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP