50% zniżki wszystkie plany, oferta czasowa. Od $2.48/mo
10 min pozostało
Bezpieczeństwo i Sieć

Jak używać Rsync w Linux? Rsync na zdalny serwer 💻📥

Lilia Carnell By Lilia Carnell Czytanie 10 minut Zaktualizowano 16 kwietnia 2023
rsync na zdalny serwer

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.

Hosting Linux VPS

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ęcej

Moż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.

Udostępnij

Więcej z bloga

Czytaj dalej.

Grafika tytułowa Cloudzy do przewodnika po MikroTik L2TP VPN, przedstawiająca laptopa łączącego się z szafą serwerową przez świecący niebiesko-złoty cyfrowy tunel z ikonami tarczy.
Bezpieczeństwo i Sieć

Konfiguracja MikroTik L2TP VPN (z IPsec): przewodnik po RouterOS (2026)

W tej konfiguracji MikroTik L2TP VPN protokół L2TP odpowiada za tunelowanie, a IPsec za szyfrowanie i integralność. Ich połączenie zapewnia natywną zgodność z klientami bez konieczności stosowania rozwiązań innych firm.

Rexa CyrusRexa Cyrus 9 minut czytania
Okno terminala wyświetlające komunikat ostrzegawczy SSH o zmianie identyfikacji zdalnego hosta, z tytułem przewodnika naprawczego i brandingiem Cloudzy na ciemnozielonym tle.
Bezpieczeństwo i Sieć

Warning: Remote Host Identification Has Changed i jak to naprawić

SSH to bezpieczny protokół sieciowy tworzący szyfrowany tunel między systemami. Pozostaje popularnym wyborem wśród programistów potrzebujących zdalnego dostępu do komputerów bez interfejsu graficznego.

Rexa CyrusRexa Cyrus Czytanie 10 minut
Ilustracja do przewodnika po rozwiązywaniu problemów z serwerem DNS, z symbolami ostrzeżeń i niebieskim serwerem na ciemnym tle, dotycząca błędów rozpoznawania nazw Linux
Bezpieczeństwo i Sieć

Tymczasowy błąd rozpoznawania nazw: Co oznacza i jak go naprawić?

Podczas korzystania z Linux możesz napotkać błąd tymczasowego rozpoznawania nazw przy próbie dostępu do stron internetowych, aktualizacji pakietów lub wykonywania zadań wymagających połączenia z internetem.

Rexa CyrusRexa Cyrus 12 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/miesiąc.

Niezależna chmura od 2008 roku. AMD EPYC, NVMe, 40 Gbps. Zwrot pieniędzy w ciągu 14 dni.