▷ Rsync Linux: jak używać i przykłady poleceń

Używanie poleceń w Linuksie jest więcej niż naturalne, ponieważ są one sercem Linuksa od wielu lat, dlatego musimy być świadomi sposobu, w jaki używamy tych poleceń, ponieważ niektóre są praktyczne do podstawowych zadań, inne mogą być niebezpiecznym, jeśli nie będziemy nimi właściwie zarządzać. Jednym z najbardziej funkcjonalnych poleceń systemu Linux jest protokół rsync, który Solvetic szczegółowo wyjaśni w tym samouczku. Zobaczmy najpierw co to jest rsync.

Obecnie utrzymywanie infrastruktury dowolnej wielkości bez tworzenia kopii zapasowych może być uważane za szalone, dysk może w każdej chwili ulec awarii i możesz stracić informacje tak cenne, jak księgowość firmy. W tym poście porozmawiamy o tym, jak korzystać z Rsync, jednego z najlepszych narzędzi do tworzenia kopii zapasowych w systemach *nix. Zobaczymy od najbardziej podstawowych do bardziej zaawansowanych przykładów ze skryptami i przykładami, które możesz zastosować w swoim środowisku pracy. Będzie to podręcznik, aby wiedzieć, jak korzystać z rysnc.

Potrzeba posiadania tych samych informacji w różnych miejscach staje się coraz silniejsza, ponieważ nasz obszar roboczy jest zmienny i chcemy mieć nasze narzędzia zawsze przy sobie, a nawet jako środki zapasowe.

Co to jest rsync?Jest to narzędzie typu open source do przesyłania plików i katalogów między jedną lokalizacją a drugą. Jego zalety polegają głównie na kompresji przesyłanych informacji, umożliwia przesyłanie przez kanał SSH i przesyła tylko pliki i fragmenty plików, które zostały zmodyfikowane, zamiast ponownie przesyłać cały plik, coś podobne do tego, co dzieje się podczas przesyłania różnic w pliku pod kontrolą wersji Git.

Polecenie rsync (Remote Sync) to polecenie opracowane do zadań kopiowania plików i katalogów oraz synchronizacji, zarówno zdalnie, jak i lokalnie w systemach Linux lub UNIX.

Za pomocą tego polecenia możemy wykonać kopie z:

  • Lokalnie
  • Korzystanie ze zdalnej powłoki
  • Poprzez zdalnego demona rsync

Zastosowania RsyncWśród różnych zastosowań rsync są:

  • Automatyczne kopie zapasowe na zdalnych serwerach lub dyskach.
  • Zdalna synchronizacja plików i katalogów.
  • Wspólne przesyłanie plików.

Zalety Rsync

  • Jest szybszy niż scp (Secure Copy), ponieważ rsync używa protokołu przesyłania, który umożliwia przesyłanie tylko różnic między plikami, za pierwszym razem przesyła cały plik, za drugim tylko zmiany, które mogą istnieć.
  • Jest przeznaczony do zdalnych kopii zapasowych.
  • Obsługuje kopiowanie wszystkich uprawnień do plików, na przykład właściciela, miękkich grup i twardego łącza.
  • Używaj mniejszej przepustowości, używając kompresji podczas wysyłania plików.

Rsync posiada funkcję transferu delta, która pozwala zmniejszyć ilość danych przesyłanych przez sieć, umożliwiając przesyłanie tylko różnic między plikami źródłowymi a istniejącymi plikami w zdalnym miejscu docelowym, dlatego rsync jest idealny do tworzenia kopii zapasowych i duplikacji.
Rsync działa w procesie wyszukiwania plików do przesłania za pomocą algorytmu lqquick checkqq, który jest odpowiedzialny za wyszukiwanie plików, które zostały zmodyfikowane.

Funkcje RsyncNiektóre z jego głównych cech to:

  • Integruje funkcje wykluczania podobne do GNU tar
  • Posiada wsparcie dla kopiowania linków Linux, urządzeń, właścicieli, grup i uprawnień
  • Dodaj tryb wykluczania CVS, który pozwala ignorować te same pliki, które CVS zignorowałby w swojej funkcji
  • Nie wymaga uprawnień superużytkownika (root)
  • Możemy użyć zdalnej powłoki, takiej jak ssh lub rsh
  • Zapewnia potok transferów plików, aby zminimalizować koszty opóźnień w sieci
  • Obsługuje uwierzytelnione lub anonimowe demony rsync
  • Jest szybszy niż scp

Zobaczymy, jak używać parametrów rsync i rsync, aby móc wykonywać zadania, takie jak kopiowanie rsync tylko nowych plików lub usuwanie plików docelowych rsync.

1. Jak korzystać z rsync

Składnia użycia tego polecenia jest następująca:

 Miejsce docelowe zasobów opcji rsync 
Zmienne RsyncUżywając tej składni możemy dodać kilka zmiennych, takich jak:

  • -v: tryb pełny.
  • -r: Ta opcja kopiuje dane rekursywnie bez pozostawiania znaczników czasu i uprawnień podczas procesu.
  • -a: tryb plików, który umożliwia rekurencyjne kopiowanie plików i zachowuje dowiązania symboliczne, uprawnienia do plików, własność użytkowników i grup oraz znaczniki czasu.
  • -z: Ta opcja kompresuje dane w pliku.
  • -h: tryb czytelny dla człowieka, wyprowadza liczby w formacie czytelnym dla człowieka.

Zobaczmy teraz kilka przykładów użycia tego polecenia. Pod koniec samouczka Solvetic poda inne parametry korzystania z rsync w systemie Linux.

2. Jak zainstalować rsync

Krok 1
W większości obecnych systemów rsync jest instalowany domyślnie, ale jeśli tak nie jest, możemy wykonać następujące czynności:

 yum install rsync (Red Hat - CentOS - Fedora) apt-get install rsync (Debian - Ubuntu)

POWIĘKSZAĆ

Krok 2
W każdym razie musimy potwierdzić instalację rsync, w niektórych systemach, takich jak Ubuntu 20, jest już domyślnie:

3. Kopiuj pliki i kopiuj katalogi za pomocą rsync


Pierwszym zastosowaniem rsync jest lokalne skopiowanie lub zsynchronizowanie pliku lub katalogu. Zobaczmy, jak kopiować pliki rsync, kopiować katalogi za pomocą rsync i synchronizować dwa katalogi za pomocą rsync.

Krok 1
W tym celu wykonamy następujące czynności

 rsync -zvh "plik" "miejsce docelowe" 

Krok 2
Możemy tam zobaczyć takie szczegóły jak:

  • Dane wysłane
  • Ilość otrzymanych danych
  • Szybkość transferu
  • Całkowity rozmiar

Krok 3
Jeśli chodzi o skopiowanie katalogu lokalnie, wykonamy następujące czynności:

 rsync -zvh "katalog" "miejsce docelowe" 

4. Kopiuj lub synchronizuj zdalne foldery rsync lub zdalny katalog

Krok 1
Możemy kopiować lub synchronizować pliki lokalnie na zdalnym komputerze, do tego użyjemy następującej składni:

 rsync -avz plik / [email protected]: / miejsce docelowe / 

Krok 2
Za każdym razem, gdy używamy zdalnego adresu IP, musimy wprowadzić hasło roota wspomnianego zdalnego komputera. Teraz, jeśli zamierzamy skopiować zdalny katalog na nasz lokalny serwer, użyjemy następującej składni:

 rsync -azvh [email protected]: / miejsce docelowe / katalog / 

5. Rsync SSH, jak używać


SSH (Secure Shell) to dodatkowy mechanizm bezpieczeństwa przesyłania danych, który jest osiągany, ponieważ SSH korzysta z bezpiecznego połączenia z wysoce wystandaryzowanym szyfrowaniem.

Krok 1
Jeśli zamierzamy skopiować plik lokalny na zdalny komputer za pomocą SSH, musimy użyć opcji „-e” z nazwą protokołu, którego chcemy użyć:

 rsync -avzhe ssh [email protected]: /docelowy/katalog 

Krok 2
Aby skopiować plik lokalny na zdalny serwer, użyjemy następującej składni:

 rsync -avzhe ssh "plik" [email protected]: / miejsce docelowe / 

Krok 3
Możemy sprawdzić w zdalnym katalogu, czy plik lub katalog został skopiowany:

POWIĘKSZAĆ

6. Rsync pokazuje postęp transferu plików lub katalogów


Jest to metoda na lepsze zarządzanie transferami, osiąga się to za pomocą parametru -progress:
 rsync -avzhe ssh --progress / source [email protected]: / destination 

7. Uwzględnij lub wyklucz katalogi rsync


Opcje -include i -exclude to opcje, które pozwalają nam włączyć lub wyłączyć pliki, a także określić pliki lub katalogi, które mają być uwzględnione w synchronizacji lub wykluczyć pliki i foldery, które nie powinny być przesyłane.

Jego zastosowanie jest następujące:

 rsync -avze ssh --include 'Litera *' --exclude '*' [email protected]: / destination 

8. Rsync usuwa pliki i katalogi


W przypadku, gdy plik lub katalog nie znajduje się w źródle, ale jest już dostępny w miejscu docelowym, możemy usunąć ten plik lub katalog podczas procesu synchronizacji, w tym celu możemy użyć -delete, aby usunąć elementy, których nie ma w komputer docelowy, wykonamy następujące czynności:
 rsync -avz --delete [email protected]: / miejsce docelowe 

9. Rsync Limit rozmiaru pliku


Za pomocą parametru -max-size możemy wskazać, jaki jest maksymalny rozmiar obiektów do przesłania za pomocą rsync, co pomaga kontrolować zdalną przestrzeń:
 rsync -avzhe ssh --max-size = '300k' / źródło / [email protected]: / miejsce docelowe 

10. Rsync usuwa pliki źródłowe, jeśli transfer się powiódł

Dzięki zmiennej -remove-source-files możliwe jest, że pliki, które zostały zsynchronizowane w źródle, zostaną wyeliminowane tylko wtedy, gdy cały proces przebiegł prawidłowo, do tego użyjemy następującego. Widzimy, że plik źródłowy został usunięty.

 rsync --remove-source-files -zvh "plik" / miejsce docelowe / 

11. Uruchom rsync bez wpływu na pliki


Jest to idealna opcja dla osób, które nie znają w pełni mocy rsync, ponieważ pokazuje, co zrobi polecenie, ale nie wpływa na pochodzenie, osiąga się to na przykład za pomocą parametru -dry-run. Widzimy, że plik nadal tam jest.
 rsync --dry-run --remove-source-files -zvh "plik" / miejsce docelowe / 

12. Ogranicz przepustowość rsync


Za pomocą parametru -bwlimit będzie można określić, jakiej szybkości sieci rsync powinien używać do zadań synchronizacji, osiąga się to w następujący sposób:
 rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / destination 

13. Kopia zapasowa za pomocą Rsync


Czasami musimy wykonać kopię zapasową pewnych informacji przed wprowadzeniem modyfikacji, a w przypadku błędu podczas odzyskiwania z Kopii zapasowej, zaczniemy od laboratoryjnego tworzenia kopii zapasowej z jednego folderu do drugiego. W ten sposób utworzymy kopię zapasową z rsync w sposób kompletny i bezpieczny.

Krok 1
Zaczynamy od sprawdzenia, czy rsync jest zainstalowany.

 [użytkownik @ Solvetic ~] $ który rsync / usr / bin / rsync
Krok 2
Stworzymy 2 foldery na źródło i miejsce docelowe plików.
 mkdir {kopia zapasowa1, kopia zapasowa2} 
Krok 3
Tworzymy kilka plików w folderze backup1, w tym przypadku rozmiar plików nie ma znaczenia.
 [użytkownik @ Solvetic ~] $ dotknij backup1 / plik {1… 75} 
Krok 4
Katalog powinien zawierać 75 plików. Tworzymy kopię zapasową.
 [użytkownik @ Solvetic ~] $ ls backup1 / plik1 plik14 plik19 plik23 plik28 plik32 plik37 plik41 plik46 plik50 plik55 plik6 plik64 plik69 plik73 plik10 plik15 plik2 plik24 plik29 plik33 plik38 plik42 plik47 plik51 plik56 plik60 plik65 plik7 plik74 plik11 plik16 plik20 plik25 plik3 plik34 plik39 plik43 plik48 plik52 plik57 plik61 plik66 plik70 plik75 plik12 plik17 plik21 plik26 plik30 plik35 plik4 plik44 plik49 plik53 plik58 plik62 plik67 plik71 plik8 plik13 plik18 plik22 plik27 plik31 plik36 plik40 plik45 plik5 plik54 plik59 plik63 plik68 plik72 plik9
Krok 5
Do tworzenia kopii zapasowych plików do backup2 używamy. Źródło musi kończyć się na /, w przeciwnym razie skopiuje swój folder, a nie zawartość.
 rsync -r kopia zapasowa1 / kopia zapasowa2 
Krok 6
Jeśli wejdziemy do backup2 możemy zobaczyć 75 plików, możemy nawet sprawdzić, czy są to 2 identyczne katalogi za pomocą diff.
 [użytkownik @ Solvetic ~] $ diff kopia zapasowa1 kopia zapasowa2 
Krok 7
W przypadku tworzenia softlinka z pliku w katalogu 1
 ln -s plik30 plik100 
Krok 8
Użycie rsync z opcją -r nie spowoduje synchronizacji softlinku w tym przypadku, którego używamy. Jeśli spojrzymy na ten czas, będziemy mieli zsynchronizowany softlink.
 rsync -a kopia zapasowa1 / kopia zapasowa2 
NotatkaJeśli nie jesteśmy pewni, co będziemy wspierać, możemy użyć symulacji z -n iw połączeniu z -v może to być bardzo przydatne.
 [użytkownik @ Solvetic ~] $ rsync -anv backup1 / backup2 wysyłanie przyrostowej listy plików wysłanych 606 bajtów odebranych 12 bajtów 1236.00 bajtów/sek całkowity rozmiar to 6 przyspieszenie 0,01 (DRY RUN)

14. Inne parametry Rsync


Jak wspomnieliśmy, oto niektóre z dodatkowych parametrów, których można używać z rsync w systemie Linux:

Parametry Rsync

  • -t, --times: zachowaj modyfikację czasu
  • -g, --group: zachowaj grupy
  • -o, --owner: zachowaj właściciela obiektu
  • -B, --block-size = ROZMIAR: wymusza stałą sumę kontrolną rozmiaru bloku
  • T, --temp-dir = DIR: ta wartość tworzy pliki tymczasowe w katalogu DIR
  • z, --compress: kompresuj dane pliku podczas przesyłania
  • -4, --ipv4: używaj tylko IPv4
  • -6, --ipv6: używaj tylko IPv6

Istnieje wiele innych zmiennych, ale są one więcej niż wystarczające, aby w pełni wykorzystać rsync w systemie Linux. Widzieliśmy, jak korzystać z rsync z najbardziej przydatnymi opcjami, wraz z narzędziami takimi jak skrypty cron i bash, python będziemy mieli wszystko, czego potrzebujemy do tworzenia kopii zapasowych bez potrzeby korzystania z narzędzi innych firm.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave