Niezależnie od tego, czy jesteś administratorem, czy zwykłym użytkownikiem, z całą pewnością potrzebujesz regularnie tworzyć kopie zapasowe swoich plików lub synchronizować je między kilkoma systemami. Jeśli każda operacja wymaga nadpisania wszystkich plików, będzie to czasochłonne i frustrujące. W takim przypadku Linux narzędzie Rsync do zdalnego serwera przyjdzie ci z pomocą. Ten przewodnik zapozna cię z najbardziej użytecznymi poleceniami Rsync, dzięki czemu będziesz mógł wykorzystać jego szybkie i bezpieczne możliwości.
Czym Jest Narzędzie Rsync?
Synchronizacja zdalna (Rsync) to popularne polecenie Unix, które można wykorzystać do kopiowania i synchronizacji plików oraz katalogów za pośrednictwem dostępu zdalnego lub lokalnie. Rsync pozwala wykonywać różne zadania związane z danymi, takie jak synchronizacja, kopiowanie i tworzenie kopii zapasowych. Ponadto można zsynchronizować system z innym systemem.
Głównym celem korzystania z Rsync na serwerze zdalnym jest wykorzystanie jego szybkiego transferu plików. Aby przesyłać dane między dwoma źródłami, bierze on pod uwagę tylko różnice między nimi. Innymi słowy, polecenie Rsync pozwala uniknąć marnowania czasu na transfer danych, ponieważ uwzględnia tylko różnice między dwoma systemami.
Dlaczego warto używać Rsync?
Jak zapewne wiesz, dostępnych jest wiele narzędzi do tworzenia kopii zapasowych. Pytanie brzmi: co czyni Rsync wyjątkowym w porównaniu z innymi narzędziami lub poleceniami?
Na przykład możesz użyć Protokół Transferu Plików (FTP) aby mieć lokalną kopię swojej strony, lub Protokół Bezpiecznego Kopiowania (SCP) do tego celu. Jednak oba rozwiązania mają wady. FTP nie zawiera szyfrowania danych, co nie jest pożądane, a choć SCP nie ma problemu z nieszyfrowanym transferem jak FTP, wymaga więcej czasu na transfer, ponieważ nawiązuje tunel do tego celu.
Dlatego jako alternatywa dla tych problemów możemy użyć Rsync na serwerze zdalnym z szyfrowaniem opartym na kluczach (nazywane Rsync over SSH), które zapobiega przesyłaniu zduplikowanych danych i wykorzystuje klucz SSH. Warto również zauważyć, że Rsync stosuje kompresję i dekompresję przy odbiorze i wysyłaniu danych, co prowadzi do mniejszego zużycia pasma.
Jak zainstalować Rsync?
Prawdopodobnie masz już Rsync zainstalowany w systemie, ale zajmijmy się szczegółami. Zanim to zrobisz, pamiętaj, że SSH musi być już zainstalowany w systemach źródłowym i docelowym, ponieważ chcemy używać Rsync over SSH.
Krok 1: Sprawdzanie wersji SSH
Wersję SSH można sprawdzić za pomocą następującego polecenia:
ssh -V
Aby przesyłać dane z Rsync na serwer zdalny, potrzebujesz serwera lokalnego (źródła) i serwera zdalnego. Powinieneś również upewnić się, że serwer lokalny ma uprawnienia administracyjne (sudo).
Krok 2: Instalacja Rsync
Następujące polecenie pozwoli ci zainstalować Rsync na Ubuntu, Debian Mint i CentOS:
sudo apt install rsync -y
Jeśli używasz innych dystrybucji, takich jak AlmaLinux, Rocky Linux, Fedora i openSUSE, wpisz następujące polecenie, aby zainstalować usługę Rsync na serwerze zdalnym:
sudo dnf install rsync
Uwaga: apt to pomocne narzędzie do instalacji pakietów używane w dystrybucjach opartych na Debianie.
Krok 3: Uruchomienie Rsync
Teraz musisz uruchomić, a następnie włączyć Rsync, aby zacząć go używać za pomocą następujących poleceń:
sudo systemctl start rsync
sudo systemctl enable rsync
Krok 4: Weryfikacja instalacji Rsync
Wpisz następujące polecenie, aby sprawdzić, czy Rsync został poprawnie zainstalowany i sprawdzić, którą wersję używasz w systemie:
rsync --version
W następnej sekcji omówimy, jak wykorzystać możliwości tego narzędzia do tworzenia kopii zapasowych za pomocą uwierzytelniania opartego na kluczach.
Jak tworzyć kopie zapasowe przy użyciu Rsync over SSH?
Tworzenie przyrostowych kopii zapasowych to jeden z przypadków użycia Rsync z SSH. Zwróć uwagę na poniższe polecenie, aby zrozumieć, jak to działa:
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Uruchomienie powyższego polecenia pomoże ci zsynchronizować sourceDir i destinationDir. To polecenie zawiera inne opcje, które powinieneś znać, takie jak -a (archive) i -v (verbose)Zwróć uwagę, że -e ssh opcja wymaga, aby połączenie Rsync przebiegało przez protokół SSH.
Jeśli chcesz Połączenie SSH być zaakceptowanym na porcie innym niż domyślny (port 22), musisz podać numer portu po -e ssh. Spójrz na poniższe polecenie, aby zrozumieć, jak to działa.
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
W powyższym poleceniu zakładamy, że chcemy użyć portu 1998 dla SSH zamiast 22.
Rsync do serwera zdalnego przez SSH ma inne opcje, które mogą być bardzo pomocne. Na przykład użycie –partial opcja umożliwia kontynuowanie poprzedniego niedokończonego transferu w przypadku problemów, takich jak przerwanie Rsync. Możesz również śledzić bieżący postęp transferu pliku za pośrednictwem –progress opcji. Ponadto narzędzie Rsync do serwera zdalnego pozwala ci korzystać z obu tych funkcji jednocześnie. Aby to zrobić, możesz użyć -p flagi w wierszu polecenia.
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Rsync do serwera zdalnego z opcją kompresji pozwala na kompresję danych przed przesłaniem ich do celu. Chociaż użyjesz procesora CPU do przeprowadzenia kompresji, wciąż jest to bardzo pomocne, ponieważ przyspiesza transfer plików i zmniejsza zużycie przepustowości.
Możesz użyć polecenia Rsync do kopiowania plików i katalogów, zdalnych lub lokalnych. Główną zaletą Rsync jest to, że opiera się na algorytmie transferu delty, który uniemożliwia kopiowanie zduplikowanych danych ze źródła do celu. Jak wspomniano wcześniej, ta funkcja narzędzia Rsync do serwera zdalnego pomaga ci, jeśli chcesz obsługiwać codzienne kopie zapasowe i lustrzane odbicia systemu. Biorąc to pod uwagę, użyjmy polecenia Rsync dla lokalnych przypadków użycia.
Jak używać Rsync do synchronizacji lokalnej?
Zanim zagłębimy się w synchronizację lokalną i sposób użycia polecenia Rsync, powinieneś znać ogólną strukturę lokalnego Rsync, którą pokazano poniżej:
rsync [options] [Source] [Destination]
Kopiowanie plików lokalnie
Załóżmy, że chcemy zsynchronizować lub skopiować plik z katalogu pulpitu (zwanego Cloudzy) do /home/Public folderem; oto co musisz wpisać:
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
Powyższe polecenie Rsync zawiera trzy opcje, takie jak -zvh; poprzez użycie -z, twój plik będzie skompresowany podczas transferu. v opcja oznacza szczegółowe dane wyjściowe, a opcja h to właśnie to, co pomaga nam móc czytać dane wyjściowe w zrozumiały dla człowieka sposób, czyli wyświetlanie danych wyjściowych czytelnych dla człowieka.
Kopiowanie katalogów lokalnie
Jeśli chcemy skopiować katalog pulpitu (zwany Cloudzy) do /home/Public folderem; musisz wpisać poniższą komendę:
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
Trwałość -a opcja w tej komendzie archiwizuje katalogi i pliki podczas synchronizacji.
Możesz szybko sprawdzić listę katalogów w folderze docelowym, aby zweryfikować, czy katalog został skopiowany. W tym celu użyj poniższej komendy:
ls -ld /home/Public
Synchronizacja plików i katalogów rekurencyjnie i lokalnie (Recursive Rsync)
Co by było, gdyby w /desktop/Cloudzybyło kilka katalogów i plików, a ty chciał je skopiować rekurencyjnie przy użyciu komendy Linux Rsync?
W tym przypadku używasz opcja -r aby rekurencyjnie zsynchronizować swoje lokalne pliki i katalogi. Możesz również użyć opcja archiwizacji (-a) ponieważ ma inne przypadki użycia, takie jak rekurencyjne kopiowanie. Zapoznaj się z poniższą komendą, aby zaznajomić się z rekurencyjnymi komendami Rsync.
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
Kopiowanie katalogów i plików z systemu lokalnego na serwer zdalny
Oprócz charakterystyk Linux Rsync do zdalnego serwera, które wspomnęliśmy w poprzednich sekcjach, ta znana komenda umożliwia również synchronizowanie plików i katalogów z maszyny lokalnej do systemu zdalnego.
Załóżmy, że chcemy skopiować folder (/desktop/Cloudzy/nowy_folder) z maszyny lokalnej na system zdalny (z 192.168.1.79) pod /mycpt; oto przykład pokazujący, jak to działa:
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
Jak skopiować katalogi bez ich plików przy użyciu Rsync?
W niektórych przypadkach możemy chcieć użyć możliwości Linux Rsync do zdalnego serwera do kopiowania katalogów bez plików; ta synchronizacja może odbywać się z maszyny zdalnej do systemu lokalnego lub odwrotnie.
W tym artykule używaliśmy systemu zdalnego na 192.168.1.79. Załóżmy, że znajduje się on w /mycpt folderze i chcemy skopiować /desktop/Cloudzy katalog z systemu lokalnego bez dołączania jego plików. Wpisz poniższą komendę:
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
Inne przydatne komendy Rsync
Tutaj omówimy kilka dodatkowych komend Linux Rsync, które mogą być dla ciebie praktyczne.
Ustal maksymalny rozmiar pliku do transferu w Rsync
Możesz ustawić limit rozmiaru pliku do transferu za pomocą polecenia Rsync, co jest przydatne, gdy regularnie synchronizujesz pliki z serwerem zdalnym, a przepustowość i czas to czynniki, które musisz brać pod uwagę. Zapoznaj się z poniższym poleceniem, aby dowiedzieć się, jak ustawić ograniczenia rozmiaru w Rsync:
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
Ustal minimalny rozmiar pliku do transferu w Rsync
Podobnie jak przy ustawianiu maksymalnego rozmiaru, możesz określić minimalny rozmiar pliku, który chcesz przesłać na serwer zdalny za pomocą Rsync. W poniższym poleceniu ustawimy minimalny rozmiar pliku na 10k:
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
Usuwanie plików ze źródła po ukończeniu synchronizacji
Po zakończeniu pracy z poleceniem Rsync możesz już nie potrzebować pliku w systemie źródłowym. W tym przypadku możesz użyć polecenia Rsync Linux jak poniżej, aby usunąć pliki ze źródła:
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Testowy przebieg synchronizacji
Jeśli dopiero zapoznajesz się z narzędziem Rsync Linux i nie znasz jeszcze wszystkich jego opcji, a przebieg próbny to właściwy sposób. Po uruchomieniu Rsync w trybie testowym zobaczy ono, co by się stało, ale nie zmieni żadnych plików. Po sprawdzeniu wyniku możesz usunąć opcję –dry-run i wykonać polecenie w terminalu. Zapoznaj się z poniższym poleceniem, aby lepiej zrozumieć tryb testowy:
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Podsumowanie: Korzystanie z poleceń Rsync Linux
Ten artykuł wyjaśnił, jak używać narzędzia Rsync Linux do synchronizacji z serwerem zdalnym (i serwerem lokalnym) w różnych scenariuszach, w tym Duplikowanie systemu, tworzenie kopii zapasowych plików oraz kopiowanie plików i katalogów lokalnie i zdalnie w efektywny sposób. To dobrze znane polecenie Linux pozwala ci korzystać z szybkiego transferu plików oraz kompresji danych SSH.
Postaw na ekonomiczny lub premium Linux VPS do hostowania strony internetowej lub zdalnego pulpitu, w najniższej dostępnej cenie. VPS Działa na Linux KVM dla większej wydajności i wykorzystuje wydajny sprzęt z pamięcią masową NVMe SSD dla większej szybkości.
Czytaj więcejMożesz w pełni wykorzystać ten system operacyjny, korzystając z Linux VPS rozwiązania od Cloudzy, które daje dostęp do hostingu opartego na KVM. Oferujemy wysokowydajne usługi VPS z gwarancją 99,95% dostępności, stabilnością, minimalnym opóźnieniem, światowymi centrami danych (12 lokalizacji), ultraszybką pamięcią masową SSD i wsparcie 24/7. Możesz rozpocząć pracę z Linux VPS już za 4,95 zł i skalować to rozwiązanie, jeśli będziesz potrzebować czegoś bardziej zaawansowanego.
Często zadawane pytania
Jaki port TCP używa Rsync?
SSH domyślnie używa portu 22. Dlatego też gdy używasz Rsync przez SSH, będzie on działać na tym porcie. Z kolei w przypadku demona Rsync używany jest port 873.
Co to jest Rsync?
Rsync to narzędzie Linux, które synchronizuje pliki i katalogi zdalnie lub lokalnie. Polecenie Rsync umożliwia wykonanie różnych operacji na plikach, takich jak synchronizacja, kopiowanie i tworzenie kopii zapasowych.