Polecenie rsync to jedno z najpotężniejszych narzędzi do synchronizacji i kopiowania danych w systemach Linux, umożliwiające szybki transfer plików lokalnie oraz przez sieć z zachowaniem uprawnień i struktury katalogów.
1. Co to jest rsync i do czego służy
rsync umożliwia:
- synchronizację plików i katalogów – sprawnie kopiuje tylko zmiany (tzw. różnice delta), skracając czas i obciążenie sieci;
 - tworzenie kopii zapasowych – zarówno lokalnie, jak i na zdalnych serwerach;
 - przesyłanie danych przez SSH w sposób bezpieczny.
 
Kluczowe cechy:
- kopiowanie różnicowe;
 - wsparcie dla zachowania uprawnień, dat, struktur katalogów;
 - bardzo wiele opcji pozwala precyzyjnie kontrolować proces kopiowania i synchronizacji.
 
2. Instalacja rsync
Krok 1: Sprawdź, czy rsync jest zainstalowany –
rsync --version 
Jeśli nie jest zainstalowany, użyj menedżera pakietów. Przykłady:
- Debian/Ubuntu:
 
 sudo apt-get install rsync 
- CentOS/Fedora:
 
 sudo yum install rsync 
Większość dystrybucji ma już rsync w standardzie.
3. Podstawowa składnia
rsync [opcje] źródło cel 
- źródło – plik lub katalog, który kopiujesz/synchronizujesz.
 - cel – miejsce docelowe (lokalne lub zdalne).
 
4. Najważniejsze opcje rsync
- -r – rekurencyjne kopiowanie katalogów
 - -a – tryb archiwalny (zachowanie uprawnień, własności, dat itp.)
 - -v – tryb gadatliwy (więcej informacji na ekranie)
 - -z – kompresja podczas transferu
 - –delete – kasowanie w celu plików nieistniejących już w źródle
 - -u – pomijanie (nie nadpisywanie) nowszych plików w miejscu docelowym
 - -e – wskazanie protokołu zdalnego (np. SSH).
 
5. Przykłady użycia – Krok po kroku
5.1. Kopiowanie katalogów lokalnych
Synchronizacja katalogu A z B (na tym samym hoście) –
rsync -av /home/user/A/ /home/user/B/ 
/home/user/A/– źródło (z ukośnikiem na końcu!)./home/user/B/– cel.
5.2. Synchronizacja na zdalny serwer przez SSH
Kopiowanie katalogu na zdalny serwer –
rsync -avz /home/user/dane/ [email protected]:/backup/ 
- Dodatek 
-zkompresuje transfer. - Domyślnie używany jest SSH.
 
Kopiowanie z serwera do siebie –
rsync -avz [email protected]:/backup/ /home/user/backup/ 
5.3. Usuwanie plików po stronie docelowej
Synchronizacja w pełni, kasowanie plików, które nie istnieją już w źródle –
rsync -av --delete /home/user/A/ /home/user/B/ 
Uwaga: opcja –delete usuwa z miejsca docelowego pliki, których nie ma już w źródle.
5.4. Wykluczanie określonych plików/katalogów
Możesz wykluczyć dane pliki:
rsync -av --exclude 'plik.txt' /src/ /dst/ 
Lub skorzystać z listy plików do wykluczenia za pomocą parametru --exclude-from=plik_lista.txt.
6. Ustawienia zaawansowane i automatyzacja
6.1. Schedulowanie (automatyczne kopie zapasowe)
Dodaj polecenie do crona:
crontab -e 
Przykład (kopie co noc o pierwszej w nocy):
0 1 * * * rsync -av --delete /home/user/dane/ /media/backup/ 
6.2. Serwer rsync (usługa daemon)
Możliwe jest uruchomienie rsync jako serwera (daemon) do bardziej rozbudowanych zadań sieciowych.
- Plik konfiguracyjny: 
/etc/rsyncd.conf - W pliku ustawiasz katalogi udostępniane, prawa dostępu, logowanie itp.
 
7. Bezpieczeństwo i najlepsze praktyki
- Zawsze przetestuj polecenie na małych zbiorach danych – użyj 
-n(–dry-run), by zobaczyć, co by się stało bez rzeczywistego kopiowania. - Planuj synchronizacje w porach najmniejszego obciążenia systemu.
 - Chroń transfer siedziowy przez SSH (domyślne zachowanie przy połączeniu zdalnym).
 
8. Częste błędy i ich unikanie
- Błędne użycie ukośnika („/”) na końcu ścieżek! 
/src/vs/src– mają inne znaczenie w kontekście kopiowania. - Nadpisywanie nowszych plików – użyj 
-u, aby tego uniknąć. - Brak 
--delete– stare pliki nie są usuwane z celu. 
9. Dodatkowe źródła i dokumentacja
- Sprawdź stronę man: 
man rsync - Oficjalna dokumentacja online oraz przewodniki społeczności linuksowych.
 
rsync to standard w zarządzaniu kopiami zapasowymi i synchronizacją danych na Linuksie. Odpowiednie wykorzystanie jego opcji pozwoli oszczędzić miejsce, czas i zapobiec utracie ważnych plików.



