rsync
Aktualna wersja stabilna | 3.3.0 (6 kwietnia 2024) [±] |
---|---|
Język programowania | C |
System operacyjny | System uniksopodobny, Microsoft Windows |
Licencja | LGPL |
Strona internetowa |
rsync (z ang. remote synchronization – zdalna synchronizacja) – protokół synchronizacji plików przez sieć.
Zwykłe systemy przesyłania różnic (takie jak popularny diff/patch) wymagają istnienia obu wersji po jednej stronie, na podstawie których tworzona jest lista różnic a następnie przesyłana przez sieć. Rsync działa w odmienny sposób – przez sieć wysyłany jest spis plików z hashami bloków (zwykle ok. 1 kB), po czym na drugiej maszynie program sprawdza, które z fragmentów już posiada. Daje to bardzo dobre rezultaty i umożliwia radzenie sobie z sytuacjami, które dla patch/diff byłyby trudne do realizacji, jak przeniesienia plików.
Rsync umożliwia też dostęp na bieżąco, w przeciwieństwie do „raz na dzień” w przypadku patch/diff.
Przykłady
[edytuj | edytuj kod]rsync --progress --delete -axH /home/ /mnt/raid/home/
uaktualnia katalog /mnt/raid/home/ zawartością /home/ z wiernym zachowaniem dowiązań symbolicznych, praw itp. (-a), dowiązań twardych (-H), w ramach danego systemu plików (-x). Wywołanie używane np. do przenoszenia zawartości partycji.
rsync -Havz 192.168.1.96::etc /!rrr/
Kopiuje do katalogu /!rrr/ z komputera o adresie 192.168.1.96 udział etc
, udostępniony przez rsyncd.
rsync -a -m --include='*.JPG' --include='*/' --exclude='*' test1/ test3/
Kopiuje tylko pliki JPG z katalogu test1 do katalogu test3 (pod warunkiem bycia w katalogu, w którym one się znajdują). Kopiuje całą strukturę katalogów z katalogu test1 (zawierającą pliki .JPG) i umieszcza te pliki dokładnie w tych samych podkatalogach, które były w test1.