- 1 1. Wprowadzenie
- 2 2. Jak zainstalować rsync (Ubuntu)
- 3 3. Podstawowe użycie rsync
- 4 4. Synchronizacja z serwerami zdalnymi
- 5 5. Przydatne opcje rsync i przykłady użycia
- 6 6. Wprowadzenie do narzędzia GUI „Grsync”
- 7 7. Częste i rozwiązania
- 8 8. FAQ (Frequently Asked Questions)
- 8.5.1 Pytanie 1. Jak zachować własność i uprawnienia plików przy użyciu rsync?
- 8.5.2 Pytanie 2. Jak wykluczyć konkretne pliki lub foldery z synchronizacji?
- 8.5.3 Pytanie 3. Jak ograniczyć przepustowość sieci przy użyciu rsync?
- 8.5.4 Pytanie 4. Chcę zobaczyć, co się stanie przed wykonaniem. Jak?
- 8.5.5 Pytanie 5. Czy ukryte pliki (dot files) są kopiowane?
- 8.5.6 Pytanie 6. Jaka jest różnica między rsync a scp?
- 9 9. Zakończenie
1. Wprowadzenie
Co to jest rsync?
rsync jest narzędziem wiersza poleceń służącym do szybkiej i efektywnej synchronizacji oraz kopiowania plików i katalogów. Szeroko używany w systemach Linux i Unix‑like, wykorzystuje mechanizm transferu różnicowego, umożliwiając efektywną synchronizację nawet dużych wolumenów plików bez niepotrzebnego przesyłania danych. Często jest domyślnie dołączany do dystrybucji Linuxa, takich jak Ubuntu, co czyni go niezbędnym narzędziem dla administratorów serwerów i programistów.
Korzyści z używania rsync w Ubuntu
W Ubuntu rsync jest niezwykle skuteczny przy rutynowych kopiach zapasowych i synchronizacji wielu katalogów. Bez konieczności korzystania z interfejsów graficznych możesz osiągnąć szybkie transfery plików, zarówno lokalne, jak i zdalne, wpisując po prostu kilka poleceń w terminalu.
Jest szczególnie przydatny w następujących scenariuszach:
- Regularne kopie zapasowe na zewnętrznych dyskach HDD lub NAS
- Synchronizacja folderów projektów podczas programowania
- Zadania wdrożeniowe na serwery zdalne
- Zwiększanie dostępności poprzez lustrzane kopiowanie plików
Różnice w porównaniu z innymi poleceniami
W porównaniu z poleceniem cp, rsync przesyła jedynie różnice między źródłem a miejscem docelowym, co znacząco skraca czas przetwarzania. W porównaniu z scp oferuje takie zalety jak możliwość wznowienia po błędach oraz elastyczne ustawienia kontroli przepustowości. Dodatkowo, dużą zaletą jest możliwość przenoszenia plików przy zachowaniu ich atrybutów (właściciel, uprawnienia, znaczniki czasu itp.).
Cel tego artykułu
W tym artykule przedstawimy szczegółowe wyjaśnienie, jak zainstalować i efektywnie używać rsync w środowisku Ubuntu, włączając praktyczne przykłady poleceń i przypadki użycia. Omówimy także narzędzia graficzne oraz wskazówki rozwiązywania problemów, aby początkujący mogli łatwo rozpocząć pracę, ucząc się praktycznego wykorzystania rsync krok po kroku.
2. Jak zainstalować rsync (Ubuntu)
Sprawdź, czy rsync jest preinstalowany w Ubuntu
W większości środowisk Ubuntu rsync jest zazwyczaj zainstalowany domyślnie. Najpierw sprawdź, czy rsync jest już dostępny, używając następującego polecenia.
rsync --version
Jeśli to polecenie uruchomi się i wyświet informacje o wersji, rsync jest już zainstalowany i gotowy do użycia.
Kroki, jeśli rsync nie jest zainstalowany
Jeśli zobaczysz komunikaty takie jak „command not found” lub „rsync: command not found”, wykonaj poniższe kroki, aby go zainstalować.
- Zaktualizuj informacje o pakietach:
sudo apt update
- Zainstaluj rsync:
sudo apt install rsync
- Po zakończeniu instalacji ponownie sprawdź wersję:
rsync --version
Jeśli informacje o wersji zostaną wyświetlone bez problemów, instalacja zakończyła się sukcesem.
Czy instalacja przez snap lub inne metody jest konieczna?
Dla Ubuntu najczęściej zalecaną metodą instalacji rsync jest APT. Chociaż istnieje pakiet snap, wersja APT jest wystarczająca dla typowego użytku i zapewnia lepszą stabilność oraz kompatybilność. O ile nie masz konkretnego powodu, wybierz instalację przy użyciu APT.
Uwagi podczas instalacji
- Starsze wersje Ubuntu mogą wymagać aktualizacji repozytoriów.
- Pamiętaj o użyciu
sudo, ponieważ potrzebne są uprawnienia roota. - W środowiskach z niestabilnym połączeniem sieciowym mogą wystąpić błędy instalacji. Zaleca się przeprowadzenie instalacji w stabilnej sieci.
3. Podstawowe użycie rsync
Podstawowa składnia rsync
Składnia polecenia rsync jest prosta, a jednocześnie bardzo elastyczna. Podstawowa forma wygląda następująco:
rsync [options] source destination
Na przykład, aby skopiować zawartość katalogu /home/user/documents/ do /mnt/backup/, napisz:
rsync -av /home/user/documents/ /mnt/backup/
W tym poleceniu użyto następujących opcji:
-a: tryb archiwizacji (zachowuje strukturę katalogów, uprawnienia, własność itp.)-v: szczegółowy output (pokazuje, które pliki są kopiowane)
Uwaga na końcowy ukośnik w ścieżkach katalogów
W rsync zachowanie zmienia się w zależności od tego, czy w ścieżce źródłowej znajduje się końcowy ukośnik.
/home/user/documents/(z ukośnikiem) → Kopiowane są tylko jego zawartości (np.file1.txt,file2.txtitd.)/home/user/documents(bez ukośnika) → Kopiowany jest cały folderdocuments(wynik/mnt/backup/documents/file1.txt)
Ta różnica jest kluczowym punktem unikalnym dla rsync. Używaj jej zgodnie z potrzebami.
Lista często używanych opcji
Rsync ma wiele opcji, ale poniższe są powszechnie używane do podstawowych operacji:
| Option | Description |
|---|---|
-a | Archive mode (recursive, preserves attributes) |
-v | Display detailed transfer information |
-n | Perform a trial run with no changes (dry run) |
--progress | Show copy progress |
--delete | Delete files in the destination that do not exist in the source |
Chcesz zobaczyć, co się stanie przed wykonaniem?
Aby sprawdzić, które pliki będą przetwarzane przed faktycznym ich przesłaniem, użyj opcji -n lub --dry-run.
rsync -av --dry-run /home/user/documents/ /mnt/backup/
Pozwala to na podgląd „co się stanie” wcześniej, pomagając zapobiec przypadkowej utracie danych.
Obsługa ukrytych plików
Rsync domyślnie automatycznie uwzględnia ukryte pliki (zaczynające się od kropki .) w transferze. Umożliwia to łatwą synchronizację plików konfiguracyjnych i informacji środowiskowych.
4. Synchronizacja z serwerami zdalnymi
Zdalna synchronizacja przy użyciu rsync przez SSH
Jedną z głównych zalet rsync jest możliwość synchronizacji plików z serwerami zdalnymi przez SSH. Umożliwia to transfer danych przez sieć przy zachowaniu bezpiecznego połączenia.
Podstawowa składnia wygląda następująco:
rsync -avz source user@remote_IP_or_hostname:destination_path
Na przykład, aby zsynchronizować lokalny katalog /home/user/documents/ z /var/www/backup/ na serwerze zdalnym, użyjesz:
rsync -avz /home/user/documents/ user@example.com:/var/www/backup/
- Opcja
-zkompresuje dane podczas transferu, co jest skuteczne przy ograniczonej przepustowości. - Część
user@hostokreśla nazwę użytkownika SSH oraz nazwę hosta docelowego.
Pierwsze połączenie i konfiguracja uwierzytelniania kluczem
Podczas łączenia się z zdalnym miejscem po raz pierwszy, może zostać wyświetlony monit o potwierdzenie autentyczności hosta. Jeśli jest to bezpieczne, wpisz „yes”.
W przypadku częstych wywołań rsync, powszechną praktyką jest skonfigurowanie uwierzytelniania kluczem SSH, aby uniknąć wpisywania haseł.
- Wygeneruj klucze SSH lokalnie (jeśli ich nie masz):
ssh-keygen -t rsa
- Skopiuj klucz publiczny na serwer zdalny:
ssh-copy-id user@example.com
Po tym rsync może być uruchamiany bez hasła.
Kiedy konieczne jest podanie numeru portu
Jeśli serwer zdalny używa niestandardowego portu SSH (innego niż 22), możesz go wyraźnie podać używając opcji -e.
rsync -avz -e "ssh -p 2222" /home/user/documents/ user@example.com:/var/www/backup/
Uwaga przy dwukierunkowej synchronizacji
Rsync jest narzędziem do jednokierunkowej synchronizacji i synchronizuje tylko z „źródło → cel”. Jeśli potrzebna jest dwukierunkowa synchronizacja, sam rsync nie wystarczy i warto rozważyć użycie innego narzędzia (np. unison).
5. Przydatne opcje rsync i przykłady użycia
Przydatne opcje wykraczające poza podstawowe użycie rsync
Oprócz podstawowych funkcji kopiowania i synchronizacji, rsync oferuje różne przydatne opcje. Oto niektóre zaawansowane opcje, które są pomocne w praktycznym użyciu.
–delete: Usuwanie plików nieobecnych w źródle
Ta opcja pozwala automatycznie usuwać pliki w miejscu docelowym, które nie istnieją w źródle. Jest to bardzo przydatne, gdy chcesz wykonać mirroring (pełną replikę).
rsync -av --delete /home/user/source/ /mnt/backup/
※ Ponieważ istnieje ryzyko przypadkowego usunięcia potrzebnych plików, zaleca się najpierw sprawdzić przy pomocy --dry-run.
–exclude: Wykluczanie konkretnych plików lub katalogów
Aby wykluczyć określone pliki lub katalogi z synchronizacji, użyj --exclude.
rsync -av --exclude '*.log' --exclude 'node_modules' /project/ /backup/
Możesz łączyć wiele wzorców, aby uzyskać elastyczne ustawienia wykluczania.
–bwlimit: Limit przepustowości
Jeśli chcesz uruchomić rsync w tle, nie wpływając na pozostały ruch sieciowy, opcja --bwlimit jest skuteczna w ograniczaniu prędkości transferu.
rsync -av --bwlimit=5000 /data/ user@remote:/data/
(Ten przykład ogranicza prędkość do maksymalnie 5 MB/s)
Praktyczne przykłady użycia
rsync do celów backupu
Rsync może być również używany jako proste i wydajne narzędzie do backupu. Poniżej znajduje się polecenie, które możesz użyć do codziennych kopii zapasowych na zewnętrznym dysku HDD.
rsync -a --delete /home/user/ /media/usb/backup/
Tutaj użyto --delete, aby uzyskać pełne lustrzane odwzorowanie.
Automatyczne uruchamianie połączone z cron
Łącząc rsync z cron, możesz zautomatyzować regularną synchronizację. Na przykład, aby wykonywać backup każdej nocy o 2:00, edytuj swój crontab w następujący sposób:
0 2 * * * rsync -a /home/user/ /mnt/backup/ >> /var/log/rsync.log 2>&1
Umożliwia to nieobsługowaną automatyczną synchronizację, znacząco zwiększając wydajność zadań i operacji serwerowych.
rsync zapewnia zarówno „elastyczność”, jak i „wydajność”
Urok rsync polega na jego zdolności do zapewnienia zarówno „elastyczności dostosowania się do dowolnego celu”, jak i „wysokiej wydajności transferu” dzięki bogatemu zestawowi opcji. Jako metoda bezpiecznego i szybkiego wykonywania synchronizacji zgodnie z zamierzeniami, a nie tylko prostego kopiowania, rsync jest bardzo potężnym wyborem.
6. Wprowadzenie do narzędzia GUI „Grsync”
Polecane dla osób niekomfortowo czujących się w wierszu poleceń
rsync jest bardzo potężnym narzędziem, ale jego działanie opiera się głównie na wprowadzaniu poleceń w terminalu. Dla początkujących, którzy nie znają Linuksa lub wolą konfigurować i używać narzędzi wizualnie, może to być przytłaczające.
Właśnie tutaj przydaje się Grsync. Grsync to narzędzie GUI, które wewnętrznie korzysta z rsync, jednocześnie oferując graficzny interfejs do konfiguracji i uruchamiania.
Jak zainstalować Grsync (Ubuntu)
W Ubuntu możesz łatwo zainstalować Grsync przy użyciu APT.
sudo apt update
sudo apt install grsync
Po instalacji „Grsync” pojawi się na liście aplikacji, a kliknięcie go uruchomi interfejs graficzny.

Podstawowe użycie Grsync
Interfejs Grsync jest intuicyjny i pozwala konfigurować takie elementy jak:
- Wprowadź ścieżki źródłową i docelową
- Pola wyboru odpowiadające głównym opcjom
rsync, takim jak „Kopiowanie rekurencyjne”, „Zachowanie atrybutów” i „Opcja usuwania” - Określ wzorce wykluczeń
- Przycisk wykonania w trybie próbny (dry run)
Po skonfigurowaniu, kliknięcie przycisku „Wykonaj” uruchomi rsync w tle i przeprowadzi synchronizację plików.
Łatwe zadania okresowe dzięki funkcji Profilu
Grsync pozwala zapisać ustawienia konfiguracji jako „Profile”. Jest to bardzo wygodne przy zarządzaniu wieloma ustawieniami backupu lub miejscami docelowymi synchronizacji.
Na przykład:
- Profil 1: Backup na dysk USB
- Profil 2: Synchronizacja z NAS
- Profil 3: Lustrzane odwzorowanie na zewnętrzny serwer
Możesz łatwo przełączać się między nimi bezpośrednio w GUI.
Zalety i wady używania Grsync
| Pros | Cons |
|---|---|
| Intuitive operation without commands | Some advanced options may not be configurable through the GUI |
| Configure while confirming the meaning of options | Visualization of process details is somewhat abstract and may be insufficient for those accustomed to rsync’s output |
| Easy to start safely (e.g., dry run with a button) | Less flexible in some situations compared to using the terminal |
7. Częste i rozwiązania
Uprawnienia plików nie są zachowywane
Objaw: Właściciel lub uprawnienia plików w miejscu docelowym ulegają zmianie.
Przyczyna: rsync jest uruchamiany z uprawnieniami zwykłego użytkownika lub nie użyto opcji -a (archiwum).
Rozwiązanie:
- Jawnie podaj opcję
-a. - Uruchom rsync z
sudo, gdy jest to konieczne.sudo rsync -a /source/ /destination/
Symboliczne linki są ignorowane
Objaw: Pliki linków nie są kopiowane lub są kopiowane jako zwykłe pliki.
Przyczyna: Domyślnie, linki symboliczne są kopiowane tak, jak są, ale zachowanie może się różnić w zależności od użytych opcji.
Rozwiązanie:
- Aby kopiować linki w ich pierwotnej formie: użyj
-a. - Aby skopiować sam plik docelowy: dodaj
--copy-links.
Wyświetla się „Permission denied”
Objaw: Synchronizacja kończy się niepowodzeniem z błędem „Permission denied” dla konkretnych plików lub katalogów.
Przyczyna: Brak wystarczających uprawnień dostępu.
Rozwiązanie:
- Uruchom rsync z
sudo. - Sprawdź i popraw uprawnienia dostępu do katalogów źródłowego lub docelowego.
sudo rsync -a /source/ /destination/
„rsync: connection unexpectedly closed” jest wyświetlane (podczas połączenia zdalnego)
Objaw: Synchronizacja zostaje przerwana błędem podczas łączenia się z serwerem zdalnym.
Przyczyna: Problemy z konfiguracją SSH, nieprawidłowa ścieżka, ustawienia uprawnień po stronie zdalnej itp.
Rozwiązanie:
- Zweryfikuj samą połączenie SSH: sprawdź, czy
ssh user@hostdziała poprawnie. - Upewnij się, że ścieżka docelowa jest prawidłowa.
- Rozważ kwestie zapory sieciowej lub portu.
„Argument list too long”
Objaw: Występuje błąd przy próbie synchronizacji katalogu zawierającego bardzo dużą liczbę plików.
Przyczyna: Przekroczenie limitu długości argumentów wiersza poleceń.
Rozwiązanie:
- Ogranicz zakres docelowy przy pomocy
--excludelub--include. - Synchronizuj w kilku krokach, katalog po katalogu.
8. FAQ (Frequently Asked Questions)
Poniżej zebraliśmy najczęstsze pytania i problemy, z jakimi spotykają się użytkownicy rsync w Ubuntu. Staramy się wyjaśnić je w sposób jasny, zwracając uwagę na miejsca, w których początkujący najczęściej się gubią.
Pytanie 1. Jak zachować własność i uprawnienia plików przy użyciu rsync?
Odpowiedź 1. Używając opcji -a (tryb archiwum), możesz kopiować pliki zachowując ich uprawnienia, znaczniki czasu, właściciela, grupę i inne atrybuty. Opcja ta jest niezbędna przy tworzeniu kopii zapasowych konfiguracji systemu.
rsync -a /etc/ /backup/etc/
Pytanie 2. Jak wykluczyć konkretne pliki lub foldery z synchronizacji?
Odpowiedź 2. Możesz wykluczyć określone pliki lub wzorce z docelowego zestawu synchronizacji, używając opcji --exclude.
rsync -av --exclude '*.log' /project/ /backup/project/
Dozwolone są także maski (wildcards), co ułatwia wykluczanie katalogów takich jak node_modules czy .git.
Pytanie 3. Jak ograniczyć przepustowość sieci przy użyciu rsync?
Odpowiedź 3. Opcja --bwlimit pozwala ograniczyć prędkość transferu. Jednostką jest KB/s.
rsync -av --bwlimit=5000 /data/ user@remote:/data/
W tym przykładzie prędkość transferu jest ograniczona do maksymalnie 5 MB/s. Jest to przydatne, gdy nie chcesz całkowicie zapełniać łącza sieciowego.
Pytanie 4. Chcę zobaczyć, co się stanie przed wykonaniem. Jak?
Odpowiedź 4. Użycie opcji --dry-run (lub -n) symuluje transfer bez rzeczywistego przenoszenia plików. Pokazuje dokładnie, co miałoby się wydarzyć.
rsync -av --dry-run /source/ /destination/
Ten krok weryfikacji jest niezwykle ważny przy pierwszym użyciu rsync lub przy operacjach zawierających --delete.
Pytanie 5. Czy ukryte pliki (dot files) są kopiowane?
Odpowiedź 5. Tak, rsync domyślnie uwzględnia pliki zaczynające od kropki (.) w zestawie kopiowanych plików. Jeśli jednak chcesz wykluczyć konkretne ukryte pliki, musisz dodać regułę wykluczenia, np. --exclude '.*'.
Pytanie 6. Jaka jest różnica między rsync a scp?
Odpowiedź 6. scp to narzędzie skoncentrowane na prostym przesyłaniu plików i przy każdym użyciu kopiuje wszystkie pliki. rsync potrafi wykonywać transfer różnicowy, kopiując efektywnie jedynie zmienione fragmenty, co czyni go lepszym wyborem do kopii zapasowych i mirroringu. Jest także bardziej odporny na wznawianie przerwanych transferów.
9. Zakończenie
W tym artykule omówiliśmy szeroki zakres zagadnień dotyczących rsync w Ubuntu, od metod instalacji i podstawowego użycia, po synchronizację z serwerami zdalnymi, przydatne opcje, korzystanie z graficznego narzędzia „Grsync”, rozwiązywanie problemów oraz FAQ.
Podsumowanie zalet rsync
- Szybki transfer różnicowy zapobiega niepotrzebnemu przesyłaniu danych.
- Umożliwia tworzenie kopii zapasowych i mirroring przy zachowywaniu uprawnień i własności.
- Obsługuje zdalną synchronizację i może być używany bezpiecznie w połączeniu z SSH.
- Bogate opcje umożliwiają precyzyjną kontrolę w różnych sytuacjach, takich jak ustawienia wykluczeń i limity przepustowości.
- Może być zintegrowany z cron, aby osiągnąć automatyzację i okresowe wykonywanie.
- Narzędzie GUI Grsync ułatwia początkującym pracę z pewnością.
rsync jest „niezbędnym narzędziem dla użytkowników Linuksa”
W środowiskach Linux, w tym Ubuntu, rsync jest podstawowym narzędziem do operacji na plikach, kopii zapasowych i synchronizacji. Nawet dla początkujących, praktykowanie treści przedstawionych w tym artykule powinno umożliwić bezpieczne i efektywne korzystanie z rsync.
Co więcej, mimo że rsync ma prostą składnię, opanowanie go pozwala na zarządzanie plikami na poziomie profesjonalnym. Zacznij od opanowania podstaw, a w razie potrzeby wprowadzaj zaawansowane opcje, aby znaleźć optymalny sposób użycia rsync w swoim środowisku.

