rsync
rsync (ang. remote sync) to popularne linuksowe narzędzie wiersza poleceń służące do synchronizacji i kopiowania plików między katalogami na tym samym komputerze albo między różnymi serwerami w sieci. Jego przewagą nad prostym kopiowaniem jest inteligentny algorytm, który przesyła tylko te dane, które faktycznie się zmieniły — dzięki temu kolejne synchronizacje są bardzo szybkie i oszczędne pod względem transferu.
Jak działa rsync?
Serce rsync stanowi algorytm różnicowy (delta transfer). Przy pierwszej synchronizacji narzędzie kopiuje całość, ale przy kolejnych porównuje pliki źródłowe i docelowe, dzieli je na bloki i przesyła wyłącznie te fragmenty, które uległy zmianie. Dodatkowo rsync:
- zachowuje uprawnienia, właścicieli, znaczniki czasu i dowiązania symboliczne,
- potrafi kompresować dane w locie (opcja -z), zmniejszając ruch sieciowy,
- umożliwia usuwanie po stronie docelowej plików, których już nie ma w źródle (opcja --delete), tworząc wierną kopię lustrzaną,
- oferuje tryb testowy (--dry-run), który pokazuje, co zostałoby zrobione, bez wprowadzania zmian.
Do pracy między serwerami rsync najczęściej wykorzystuje tunel SSH, co zapewnia szyfrowanie przesyłanych danych.
Zastosowanie w praktyce
rsync to jedno z podstawowych narzędzi administratora. Wykorzystuje się je do wykonywania kopii zapasowych (w tym przyrostowych), migracji stron i danych na nowy serwer, utrzymywania kopii lustrzanych oraz jako element procesu wdrożenia — nowe wersje aplikacji często synchronizuje się na serwer produkcyjny właśnie przez rsync. Ponieważ narzędzie działa z wiersza poleceń, łatwo je zautomatyzować w skryptach i zadaniach cyklicznych, np. w połączeniu z crontabem, co czyni je fundamentem wielu rutynowych zadań na serwerach Linux.
Powiązane pojęcia
Najczęstsze pytania
Dlaczego rsync jest szybszy od zwykłego kopiowania?
rsync stosuje algorytm różnicowy — przy kolejnej synchronizacji porównuje pliki i przesyła wyłącznie te fragmenty, które faktycznie się zmieniły, zamiast kopiować całość od nowa. Przy dużych zbiorach danych, z których zmienia się niewiele, oznacza to ogromną oszczędność czasu i transferu.
Czy rsync szyfruje przesyłane dane?
Sam rsync nie szyfruje, ale najczęściej uruchamia się go przez tunel SSH, który zapewnia szyfrowanie transmisji. Wtedy dane między serwerami przechodzą bezpiecznym kanałem, tak jak przy zwykłym połączeniu SSH.
