10 Praktyczne przykłady polecenia rsync w Linux

10 Praktyczne przykłady polecenia rsync w Linux

Rsync (Synchronizacja zdalna) jest najczęściej używanym poleceniem do kopiowania i synchronizacji plików i katalogów lokalnie W Linux/UNIX systemy.

Z pomocą rsync polecenie, możesz kopiować i synchronizować swoje dane zdalnie i lokalnie między katalogami, dyskami i sieciami, wykonywać kopie zapasowe danych i odzwierciedlać dwa maszyny Linux.

Rsync lokalna i zdalna synchronizacja plików

Ten artykuł wyjaśnia 10 podstawowe i zaawansowane użycie rsync polecenie do przesyłania plików zdalnie i lokalnie w Linuks maszyny. Nie musisz być źródło użytkownik do uruchomienia rsync Komenda.

Niektóre zalety i cechy polecenia rsync

  • Wydajnie kopiuje i synchronizuje pliki z systemem zdalnym lub ze zdalnego systemu.
  • Obsługuje kopiowanie linków, urządzeń, właścicieli, grup i uprawnień.
  • Jest szybszy niż SCP (Bezpieczna kopia) ponieważ rsync używa zdalnego protokołu, który umożliwia przesyłanie tylko różnic między dwoma zestawami plików. Za pierwszym razem kopiuje całą zawartość pliku lub katalogu od źródła do miejsca docelowego, ale od następnego razu kopiuje tylko zmienione bloki i bajty do miejsca docelowego.
  • Rsync zużywa mniejsze wykorzystanie przepustowości, ponieważ wykorzystuje metodę kompresji i dekompresji podczas wysyłania i odbierania danych na obu końcach.
Podstawowa składnia polecenia RSYNC
# Rsync Opcje źródłowe
Niektóre typowe opcje używane z poleceniami RSync
  • -v : Pochylenia
  • -R : kopiuje dane rekurencyjnie (ale nie zachowaj znaczników czasu i uprawnień podczas przesyłania danych.
  • -A : Tryb archiwum, który umożliwia rekurencyjnie kopiowanie plików, a także zachowuje symboliczne łącza, uprawnienia do plików, właściciele użytkowników i grupy oraz znaczniki czasu.
  • -z : skompresuj dane plików.
  • -H : Liczby wyjściowe czytelne przez człowieka w formacie czytelnym człowieka.

[Może się również spodobać: Jak synchronizować pliki/katalogi za pomocą RSYNC z niestandardowym portem SSH]

Zainstaluj RSync w systemie Linux

Możemy zainstalować rsync pakiet z pomocą następującego polecenia w dystrybucji Linux.

$ sudo apt-get instaluj rsync [na debian/ubuntu & mint] $ pacman -s rsync [on Arch Linux] $ Ems-Apps/rsync [on Gentoo] $ sudo yum instaluj rsync [na Fedora/Centos/Rhel and Rocky i Rocky Linux/Almalinux] $ sudo zypper instal rsync [on openSuse] 

1. Kopiuj pliki i synchronizację i katalog lokalny

Skopiuj/zsynchronizuj plik na komputerze lokalnym

Poniższe polecenie zsynchronizuje pojedynczy plik na komputerze lokalnym z jednej lokalizacji do innej lokalizacji. Tutaj w tym przykładzie nazwa pliku kopia zapasowa.smoła musi być skopiowany lub zsynchronizowany /tmp/kopie zapasowe/ teczka.

[[e -mail chroniony]]# rsync -zvh tworzenie kopii zapasowych.smoła.GZ/TMP/Backups/Created Directory/TMP/Backups Backup.smoła.GZ wysłał 224.54 tys. Bajtów otrzymało 70 bajtów 449.Całkowity rozmiar 21K bajtów/s to 224.40K Spędu wynosi 1.00 

W powyższym przykładzie widać, że jeśli miejsce docelowe nie istniało jeszcze, rsync utworzy katalog automatycznie dla miejsca docelowego.

Pliki lokalne RSync
Skopiuj/zsynchronizuj katalog na komputerze lokalnym

Poniższe polecenie przesyła lub zsynchronizuje wszystkie pliki z jednego katalogu do innego katalogu na tym samym komputerze. Tutaj w tym przykładzie, /root/rpmpkgs zawiera niektóre pliki pakietów RPM i chcesz, aby katalog ten został skopiowany w środku /tmp/kopie zapasowe/ teczka.

[[E -mail chroniony]]# rsync -Avzh/root/rpmpkgs/tmp/backups/wysyłanie listy plików przyrostowych rpmpkgs/rpmpkgs/httpd -2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/NAGIOS-4.4.6-4.El8.x86_64.RPM RPMPKGS/NAGIOS-PLUGINS-2.3.3-5.El8.x86_64.RPM wysłał 3.47m bajtów otrzymało 96 bajtów 2.32 mln bajtów/SEC Całkowity rozmiar to 3.74 m szybkość wynosi 1.08 
Lokalny katalog Rsync

2. Kopiuj/synchronizę plików i katalogu z lub z serwera

Skopiuj katalog z serwera lokalnego na zdalny serwer

To polecenie zsynchronizuje katalog z maszyny lokalnej na zdalną maszynę. Na przykład, W lokalnym komputerze jest folder „rpmpkgs”To zawiera niektóre RPM pakiety i chcesz, aby treść lokalnego katalogu wysyłała na zdalny serwer, możesz użyć następującego polecenia.

[[chroniony e -mail]: ~]# rsync -Avzh/root/rpmpkgs [e -mail chroniony]:/root/autentyczność hosta '192.168.0.141 (192.168.0.141) „Nie można ustalić. ED25519 Kluczowy odcisk palca to SHA256: BH2TIWQN4S5O6QMZHMTXCBROV5TU5H4T2C42QDEMX1C. Ten klucz nie jest znany pod żadnymi innymi nazwami, czy na pewno chcesz kontynuować łączenie (tak/nie/[odcisk palca]))? Tak Ostrzeżenie: na stałe dodane „192.168.0.141 '(ed25519) do listy znanych hostów. Hasło [e-mail chronione]: wysyłanie listy inkrementalnej plików rpmpkgs/ rpmpkgs/ httpd-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/NAGIOS-4.4.6-4.El8.x86_64.RPM RPMPKGS/NAGIOS-PLUGINS-2.3.3-5.El8.x86_64.RPM wysłał 3.74 m bajtów otrzymało 96 bajtów 439.88 tys. Bajtów/s Całkowity rozmiar to 3.74 m szybkość wynosi 1.00 
Rsync Directory System zdalny
Skopiuj/zsynchronizuj zdalny katalog z komputerem lokalnym

To polecenie pomoże Ci zsynchronizować zdalny katalog z lokalnym katalogiem. Tutaj w tym przykładzie katalog /root/rpmpkgs który jest na zdalnym serwerze, jest kopiowany na komputerze lokalnym /tmp/miRPMS.

[[e -mail chroniony]: ~]# rsync -Avzh [e -mail chroniony]:/root/rpmpkgs/tmp/myRpms [e -mail chroniony] hasło: odbieranie przyrostowej listy plików utworzone katalog/tmp/myRpms rpmpkgs/rpmpkgs/httpd -2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM RPMPKGS/NAGIOS-4.4.6-4.El8.x86_64.RPM RPMPKGS/NAGIOS-PLUGINS-2.3.3-5.El8.x86_64.RPM wysłało 104 bajty otrzymały 3.49m bajtów 997.68 tys. Bajtów/SEC Całkowity rozmiar to 3.74 m szybkość wynosi 1.07 
RYSync zdalny katalog do lokalnego

3. Rsync nad SSH

Z rsync, możemy użyć Ssh (Bezpieczna skorupa) do przesyłania danych za pomocą Ssh Protokół podczas przesyłania naszych danych możesz upewnić się, że Twoje dane są przesyłane w bezpiecznym połączeniu z szyfrowaniem, aby nikt nie mógł odczytać danych podczas przesyłania przez drut w Internecie.

[Możesz także polubił: Jak zabezpieczyć i utwardzić serwer OpenSsh]

Również kiedy używamy rsync Musimy zapewnić użytkownik/źródło hasło do wykonania tego konkretnego zadania, więc korzystanie z Ssh Opcja wyśle ​​loginy w sposób zaszyfrowany, aby twój hasło będzie bezpieczny.

Skopiuj plik z zdalnego serwera na serwer lokalny z SSH

Aby określić protokół z rsync Musisz podać „-mi„Opcja z nazwą protokołu, której chcesz użyć. Tutaj w tym przykładzie będziemy używać „ssh”Z„-mi„Opcja i wykonaj transfer danych.

[[e -mail chroniony]: ~]# rsync -Avzhe ssh [e -mail chroniony]:/root/anaconda -s.Hasło CFG /TMP [e-mail chronione]: odbieranie przyrostowej listy plików Anaconda -ks.CFG wysłało 43 bajty otrzymane 1.10 000 bajtów 325.43 bajtów/s. Całkowity rozmiar to 1.90K Spędu wynosi 1.67 
Rsync kopiuj zdalny plik do lokalnego
Skopiuj plik z serwera lokalnego na zdalny serwer z SSH
[[e -mail chroniony]: ~]# rsync -Avzhe SSH Backup.smoła.GZ [e -mail chroniony]:/kopie zapasowe/[e -mail chroniony] hasło: wysyłanie przyrostowej listy plików utworzone katalog/kopie zapasowe tworzenia kopii zapasowych.smoła.GZ wysłał 224.59 000 bajtów otrzymało 66 bajtów 64.19K bajtów/SEC Całkowity rozmiar wynosi 224.40K Spędu wynosi 1.00 
Rsync Skopiuj plik lokalny do pilota

[Może się również spodobać: Jak używać RSync do synchronizacji nowych lub zmienionych/zmodyfikowanych plików w Linux]

4. Pokaż postęp podczas przesyłania danych z RSync

Aby pokazać postęp podczas przesyłania danych z jednej maszyny na inny komputer, możemy użyć '-postęp' opcja. Wyświetla pliki i czas na zakończenie transferu.

[[e -mail chroniony]:/]# rsync -Avzhe ssh --progress/root/rpmpkgs [e -mail chroniony]:/root/rpmpkgs [hasło chronione przez e -mail]: wysyłanie listy plików przyrostowych rpmpkgs/rpmpkgs/httpd -2 -2 -2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM 1.47m 100% 31.80 MB/S 0:00:00 (XFR#1, TO-CHK = 3/5) RPMPKGS/MOD_SSL-2.4.37-40.module_el8.5.0+852+0AAFC63B.x86_64.RPM 138.01k 100% 2.69 MB/S 0:00:00 (XFR#2, TO-CHK = 2/5) rpmpkgs/nagios-4.4.6-4.El8.x86_64.RPM 2.01m 100% 18.45 MB/S 0:00:00 (XFR#3, TO-CHK = 1/5) RPMPKGS/Nagios-Plugins-2.3.3-5.El8.x86_64.RPM 120.48K 100% 1.04 MB/S 0:00:00 (XFR#4, TO-CHK = 0/5) Wysłane 3.74 m bajtów otrzymało 96 bajtów 1.50 m bajtów/SEC Całkowity rozmiar to 3.74 m szybkość wynosi 1.00 
Postęp RSync podczas kopiowania plików

5. Korzystanie z opcji -include i -exclude

Te dwie opcje pozwalają nam na to włączać I wykluczać Pliki poprzez określenie parametrów za pomocą tej opcji pomagają nam określić te pliki lub katalogi, które chcesz dołączyć do synchronizacji i wykluczyć pliki i foldery z tobą.

Tutaj w tym przykładzie polecenie RSYNC będzie zawierać tylko te pliki i katalog, które zaczynają się od 'R„i wyklucz wszystkie inne pliki i katalog.

[[e -mail chroniony]:/]# rsync -Avze ssh -Include 'r*' --exclude '*' [e -mail chroniony]:/var/lib/rpm//root/rpm [e -mail chroniony] hasło: odbieranie przyrostowej listy plików utworzone katalog /root /rpm ./ Wymagane nazwisko Wysłane 61 bajtów otrzymało 273 074 bajtów 60 696.67 bajtów/SEC Całkowity rozmiar wynosi 761 856 przyspieszenia wynosi 2.79 
Rsync obejmują i wyklucz pliki

6. Korzystanie z opcji -Delete

Jeśli plik lub katalog nie istnieje u źródła, ale już istnieje w miejscu docelowym, możesz usunąć ten istniejący plik/katalog w celu podczas synchronizacji.

Możemy użyć ''-usuwać„Opcja usuwania plików, których nie ma w katalogu źródłowym.

Źródło i cel są zsynchronizowane. Teraz utwórz nowy plik test.tekst na cel.

[[E -mail chroniony]: ~]# cd/root/rpm/[[e -mail chroniony]: ~/rpm]# test dotykowy.txt [[chroniony e -mail]: ~/rpm]# rsync -avz - -delete [e -mail chroniony]:/var/lib/rpm//rpm//rpm/[e -mail chroniony] hasło: odbieranie listy plików przyrostowych usuwania testu testu testowania testu testu testowania listy plików przyrostowych.tekst ./ .dbenv.zamek .RPM.blokuj nazwy bazowe ConflictName Dirname EnhanceName FileTriggerName Grupa instalacja Nazwa Pakiety ObsleteName PackDeName Sha1header SIGMD5.001 __db.002 __db.003 Wysłało 445 bajtów otrzymało 18 543 954 bajtów 2 472 586.53 bajtów/s. Całkowity rozmiar wynosi 71 151 616 Spędu wynosi 3.84 

Target ma nowy plik o nazwie test.tekst, podczas synchronizacji ze źródłem z '-usuwać„Opcja usunęła plik test.tekst.

Opcja usuwania rsync

7. Ustaw maksymalny rozmiar plików do przesłania

Możesz określić Max Rozmiar pliku do przesyłania lub synchronizacji. Możesz to zrobić z „-największy rozmiar" opcja. Tutaj w tym przykładzie rozmiar pliku max jest 200k, więc to polecenie przeniesie tylko te pliki, które są równe lub mniejsze niż 200k.

[[chroniony e -mail]: ~]# rsync -Avzhe ssh - -max -size = '200k'/var/lib/rpm/[e -mail chroniony]:/root/tmprpm [hasło chronione przez e -mail]: wysyłanie listy przyrostowych plików utworzono katalog /root /tmprpm ./ .dbenv.zamek .RPM.ZAKŁAD ConflictName EnhanceName FitriggerName Grupa Instalacja Nazwa ObsaleTename Polecam Nazwa Sha1header Sigmd5 Sugername SuplementName TransfileTriggerName TriggerName __db.002 Wysłano 129.52 tys. Bajtów otrzymało 396 bajtów 28.87 tys. Bajtów/SEC Całkowity rozmiar wynosi 71.15 m szybkopięcia wynosi 547.66 
Rsync Ustaw maksymalny rozmiar transferu pliku

8. Automatycznie usuń pliki źródłowe po udanym przesyłaniu

Załóżmy teraz, że masz główny serwer WWW i serwer kopii zapasowej danych, utworzyłeś codzienną kopię zapasową i zsynchronizowałeś go z serwerem kopii zapasowej, teraz nie chcesz zachować lokalnej kopii kopii zapasowej na serwerze internetowym.

Czy poczekasz na zakończenie przelewu, a następnie ręcznie usuniesz ten lokalny plik kopii zapasowej? Oczywiście że nie. To automatyczne usunięcie można wykonać za pomocą '-Usuń pliki source' opcja.

[[e-mail chroniony]: ~]# rsync--Remove-Source-Files -zvh Backup.smoła.GZ [e -mail chroniony]:/tmp/backups/[e -mail chroniony] hasło: tworzenie kopii zapasowych.smoła.GZ wysłało 795 bajtów otrzymało 2.33K bajtów 894.29 bajtów/s. Całkowity rozmiar to 267.30k szybkość wynosi 85.40 [[e -mail chroniony]: ~]# ls -l tworzenie kopii zapasowych.smoła.GZ LS: Nie można uzyskać dostępu do kopii zapasowej.smoła.GZ ': Brak takiego pliku lub katalogu 
RSync Usuń plik źródłowy po przeniesieniu

9. Wykonaj suchy bieg z rsync

Jeśli jesteś nowicjuszem używającym rsync i nie wiesz, co dokładnie zrobi twoje polecenie. Rsync może naprawdę zepsuć rzeczy w folderze docelowym, a następnie wykonywanie cofnięcia może być żmudną pracą.

[Może się również spodobać: Jak zsynchronizować dwa serwery/strony internetowe Apache za pomocą RSync]

Korzystanie z tej opcji nie wprowadzi żadnych zmian w plikach i wyświetla dane wyjściowe polecenia, jeśli wyjście pokazuje dokładnie to samo, co chcesz zrobić, możesz usunąć '-próba„Opcja z twojego polecenia i uruchom na terminalu.

[[e -mail chroniony]: ~]# rsync --próba --Usuń kopię zapasową Files-ZVH.smoła.GZ [e -mail chroniony]:/tmp/backups/[e -mail chroniony] hasło: tworzenie kopii zapasowych.smoła.GZ wysłało 50 bajtów otrzymało 19 bajtów 19.71 bajtów/s. Całkowity rozmiar to 267.30K Będność wynosi 3873.97 (PRÓBA) 
Rsync suchy bieg

10. RSYNC Ustaw limit przepustowości i plik transferowy

Możesz ustawić limit przepustowości podczas przesyłania danych z jednej maszyny do drugiej maszyny za pomocą pomocy-Bwlimit' opcja. Ta opcja pomaga nam ograniczyć I/O przepustowość łącza.

[[chroniony e -mail]]# rsync - -Bwlimit = 100 -Avzhe ssh/var/lib/rpm/[e -mail chroniony]:/root/tmprpm/[e -mail chroniony] hasło: wysyłanie listy przyrostowych plików wysyłane 324 bajty otrzymane 12 otrzymane 12 bajtów otrzymało 12 bajtów. bajty 61.09 bajtów/SEC Całkowity rozmiar to 38.08m przyspieszenie to 113347.05

Ponadto, domyślnie synchronizmy RSYNC zmieniły bloki i bajty, jeśli chcesz wyraźnie zsynchronizować cały plik, użyj ''-W„Opcja z tym.

[[e -mail chroniony]]# rsync -zvhw tworzenie kopii zapasowych.TAR/TMP/Backups/Backup.Mocowanie smoły.Tar wysłał 14.71m bajtów otrzymało 31 bajtów 3.Całkowity rozmiar 27 m bajtów/s to 16.Spędu 18 m to 1.10

To wszystko teraz z rsync, widać Strony człowieka Aby uzyskać więcej opcji. Pozostań w kontakcie z Tecmint Więcej ekscytujących i interesujących samouczków w przyszłości. Zostaw swoje uwagi I propozycje.