Jest on powszechnie wykorzystywany przez administratorów do
przesyłania danych między Uniksami. Program wymaga istnienia na obu
stronach komunikacji oraz dostępu do powłoki (rsync domyślnie
- wykorzystuje SSH)
+ wykorzystuje SSH). Program jeśli ma działać na zdalnym systemie
+ zachowuje się podobnie do SCP, program może również działać na
+ lokalnym systemie zastępując klasyczne polecenie <em>cp</em> i tak
+ też to polecenie działa w prosty niemodyfikowany opcjami sposób.
+ Opcje te programu są w stanie dość mocno wpłynąc na jego zachowanie,
+ że te dwa powyższe polecenie mogą stać się zbędne. Polecenie
+ <em>rsync</em> może być również wykorzystywane to
+ kopiowania/przenoszenia w obrębie jednego komputera.
+ </p>
+ <p>
+ Najprostsza składnia polecenia <em>rsync</em> wygląd następująco:
+ </p>
+<pre class="code-block">
+xf0r3m@immudex:~$ rsync -r katalog_lokalny user@host:/sciezka/do/katalogu/zdalnego
+</pre>
+ <p>
+ Polecenie to prześle cały katalog
+ <code class="code-inline">katalog_lokalny</code> do katalogu zdalnego
+ na serwerze. Na powyższym poleceniu użyłem opcji
+ <code class="code-inline">-r</code> (rekurencja), w przeciwnym razie
+ nic nie zostanie przesłane.
+ </p>
+ <p>
+ Podczas przekazywania ścieżek do polecenia (głównie ścieżki lokalnej)
+ istnieje pewna zależność. Jeśli definiując scieżkę lokalną podamy na
+ jej końcu ukośnik, to wówczas do katalogu zdalnego zostanie
+ przekopiowana sama zawartość bez tworzenia początkowego katalogu.
+ </p>
+<pre class="code-block">
+#Bez kończącego ukośnika:
+xf0r3m@vm-331503c:/ic0$ rsync -r Repos2 /ic0/Dokumenty
+# Katalog docelowy
+xf0r3m@vm-331503c:~/Dokumenty$ ls -al
+razem 12
+drwxr-xr-x 3 xf0r3m xf0r3m 4096 09-18 09:52 .
+drwxr-xr-x 11 xf0r3m xf0r3m 4096 09-18 09:12 ..
+drwxr-xr-x 4 xf0r3m xf0r3m 4096 09-18 09:52 Repos2
+xf0r3m@vm-331503c:~/Dokumenty$ ls -al Repos2/
+razem 16
+drwxr-xr-x 4 xf0r3m xf0r3m 4096 09-18 09:52 .
+drwxr-xr-x 3 xf0r3m xf0r3m 4096 09-18 09:52 ..
+drwxr-xr-x 5 xf0r3m xf0r3m 4096 09-18 09:52 Repos
+drwxr-xr-x 2 xf0r3m xf0r3m 4096 09-18 09:52 .test
+
+#Z kończącym ukośnikiem.
+xf0r3m@vm-331503c:/ic0$ rsync -r Repos2/ /ic0/Dokumenty
+xf0r3m@vm-331503c:~/Dokumenty$ ls -al
+razem 16
+drwxr-xr-x 4 xf0r3m xf0r3m 4096 09-18 09:58 .
+drwxr-xr-x 11 xf0r3m xf0r3m 4096 09-18 09:12 ..
+drwxr-xr-x 5 xf0r3m xf0r3m 4096 09-18 09:58 Repos
+drwxr-xr-x 2 xf0r3m xf0r3m 4096 09-18 09:58 .test
+</pre>
+ <p>
+ Na tę zależnośc należy uważać podczas kopiowania danych, ponieważ
+ sam utworzony przez polecenie katalog może być istotny. Na powyższych
+ przykładach użyłem polecenia <em>rsync</em> wewnątrz tego samego
+ systemu.
+ </p>
+ <p>
+ Jak wcześniej wspominalismy dużą rolę w polecenie <em>rsync</em>
+ odgrywają jego opcje. Poniżej znajduja się najważniejsze z znich.
+ </p>
+ <ul>
+ <li><strong>--archive, -a</strong> - Tryb archiwalny. zachowanie
+ większości atrybutów plików, poza ACL-kami, atrybutami specjalnymi
+ takim jak <em>setuid</em>, czasu utworzenia oraz czasu ostatniego
+ dostępu. W przypadku zastosowania tej opcji nie są kopiowane
+ również dowiązania twarde. Wydanie opcji <em>-a</em> jest
+ równoznaczne z wydaniem opcji serii opcji: <em>-rlptgoD</em></li>
+ <li><strong>--update, -u</strong> - Aktualizacja. Powoduje, że
+ <em>rsync</em> pomija istniejące już pliki na miejscu decelowym
+ jeśli ich czas modyfikacji jest póżniejszy niż pliku źródłówego,
+ jeśli czas modyfikacji jest równy wówczas program opiera swoje
+ porównania na rozmiarze pliku.</li>
+ <li><strong>--checksum -c</strong> - Sumy kontrolne. Zmienia sposób
+ porównywania plików. Zamiast sprawdzać czas modyfikacji czy
+ rozmiar liczona jest suma kontrolna. Te metoda jest o wiele
+ dokładniejsza, jednak wydłuża czas kopiowania oraz zużywa znacznie
+ więcej zasobów.</li>
+ <li><strong>--delete, --del</strong> - Oczyszanie katalogu. Usuwa
+ z katalogu docelowego wszystkie pozostałe pliki, które nie były
+ częścią tego transferu.
+ <li><strong>--dry-run, -n</strong> - Testy. Pozwala na sprawdzenie
+ czy nasze opcje i ścieżki zostały właściwie dobrane przed
+ dokonaniem faktycznych zmian w systemach. Polecenie to wykonuje
+ czynności <em>na sucho</em>, nie dokunując żadnych zmian w
+ systemie.</li>
+ <li><strong>--verbose, -v</strong> - zwiększenie ilości komunikatów
+ diagnostycznych.</li>
+ <li><strong>--compress, -z</strong> - Kompresja. Włącza kompresję
+ podczas przesyłania danych.</li>
+ </ul>
+ <p>
+ W tym materaile przedstawiono tylko, kilka opcji powszechnie
+ wykorzysywanych podczas korzystania z polecenia <em>rsync</em>.
+ Obszerną wiedzę na ten temat zwiera strona podręcznika polecenia,
+ zawierająca opisy wszystkich opcji oraz inne zagadnienia związane
+ z programem.
+ </p>
+ <p>
+ Ostatnią rzeczą związana z poleceniem przekazywanie do <em>rsync</em>
+ poleceń związanych z SSH, w końcu ten program domyślnie korzysta z
+ tego protokołu. Przekazanie opcji SSH wymaga użycia zmiennej powłoki.
+ </p>
+<pre class="code-block">
+export RSYNC_RSH='-p 2022 -i id_rsa';
+</pre>
+ <p>
+ W powyższym poleceniu użyto polecenia wbudowane
+ <code class="code-inline">export</code> w celu przeniesienia zmiennej
+ do obszaru pamięci odpowiedzialnego za zmienne środowiskowe (będzie
+ o tym w ostatnim rodziale materiału). Zmiennej nadano wartość
+ składającą się z dwóch opcji polecenia SSH. <em>Rsync</em> będzie
+ korzystać z tych informacji.
</p>
</div>
<p style="margin: 15px; padding: 0; outline: 0;">