Jak używać rsync do kopiowania plików

Jak używać rsync do kopiowania plików

RSync to narzędzie wiersza polecenia w Linux, które służy do kopiowania plików z lokalizacji źródłowej do miejsca docelowego. Możesz kopiować pliki, katalogi i cały system plików i zachować synchronizę plików między różnymi katalogami. Robi coś więcej niż tylko kopiowanie plików. Zmniejsza ilość danych wysyłanych przez sieć, wysyłając tylko nowe lub aktualizowane pliki. Dlatego uważa się go za świetne narzędzie do kopiowania i tworzenia kopii zapasowych plików. RSync obsługuje również kopiowanie plików do zdalnego systemu przez SSH.

W tym artykule wyjaśnimy, jak używać rsync do kopiowania plików za pomocą niektórych praktycznych przykładów. Wyjaśnimy również użycie rsync w kopiowaniu pojedynczego pliku, wielu plików i katalogu do systemów lokalnych i zdalnych. Będziemy omawiać, jak używać rsync do:

  • Skopiuj plik/katalog w systemie lokalnym
  • Skopiuj plik/katalog z lokalnego do systemu zdalnego
  • Skopiuj plik/katalog z systemu zdalnego do lokalnego

Wyjaśniliśmy polecenia i procedurę wymienioną w tym artykule na temat Ubuntu 20.04 LTS. Będziesz potrzebować terminal wiersza poleceń do kopiowania plików za pomocą RSync. Aby otworzyć aplikację terminalową wiersza poleceń, użyj skrótu klawiatury Ctrl+Alt+T.

Instalowanie rsync

Rsync jest wstępnie zainstalowany w Ubuntu 20.04 LTS. Jeśli jednak zostanie przypadkowo usunięty z systemu, możesz go zainstalować w następujący sposób:

$ sudo apt instal rsync

Oto niektóre z powszechnie używanych opcji, które można użyć z RSYNC:

-Odp.: Tryb archiwum
-V: Pokazuje szczegóły procesu kopiowania
-P: Pokazuje pasek postępu
-R: Kopiowanie danych rekurencyjnie
-Z: Kompresuje dane
-P: tłumij wyjście

Kopiuj pliki i katalogi lokalnie

Ogólna składnia rsync wynosi:

$ rsync [opcja] [Źródło] [miejsce docelowe]

Skopiuj pojedynczy plik lokalnie

Jeśli chcesz skopiować plik z jednej lokalizacji do drugiego w swoim systemie, możesz to zrobić, wpisując rsync a następnie nazwa pliku źródłowego i katalog docelowy.

Na przykład, aby skopiować pojedynczy plik „Plik 1.TXT ”Z bieżącej lokalizacji, jaką jest katalog domowy do katalogu ~/Documents, poleceniem byłoby:

$ rsync/home/tin/file1.txt/home/cyna/dokumenty

Uwaga: zamiast „/home/tin/file1.txt ”, możemy również wpisać„ plik 1 ”, ponieważ obecnie pracujemy w katalogu domowym. Możemy również używać ~/dokumentów zamiast wspominać pełną ścieżkę jako „/dom/cyn/dokumenty”.

Skopiuj wiele plików lokalnie

Jeśli chcesz skopiować wiele plików jednocześnie z jednej lokalizacji do drugiej w systemie, możesz to zrobić, wpisując rsync Następnie nazwa plików źródłowych i katalogu docelowego.

Na przykład, aby skopiować pliki „File2.txt ”i„ plik3.TXT ”Od katalogu domowego do katalogu ~/Documents poleceniem byłoby:

$ rsync/home/tin/file2.txt/home/tin/file3.txt/home/cyna/dokumenty

Aby skopiować wszystkie pliki z tym samym rozszerzeniem, możesz użyć symbolu asterisk (*) zamiast indywidualnie określania nazw plików. Na przykład, aby skopiować wszystkie pliki z katalogu domowego kończącego się „.ZIP ”Rozszerzenie do katalogu ~/Documents użyjemy:

$ rsync/home/tin/*.Zip ~/Dokumenty

Kopiuj katalogi lokalnie

Jeśli chcesz skopiować katalog z jego podwodnym i całą zawartością z jednego miejsca do drugiego w systemie, możesz to zrobić, pisząc rsync a następnie katalog źródłowy i docelowy.

Na przykład, aby skopiować katalog „przykładowy” do katalogu „test/” w katalogu domowym, poleceniem byłoby:

$ rsync -Av/home/cyna/próbka/dom/cyna/test

Uwaga: Określenie „/” po katalogu źródłowym kopiuje tylko zawartość katalogu. Jeśli nie określamy „/” po katalogu źródłowym, katalog źródłowy zostanie również skopiowany do katalogu docelowego.

Podobnie jak w następującym wyjściu, widać, że nasz katalog źródłowy „próbka” jest również kopiowana do katalogu docelowego (ponieważ użyliśmy „próbki” zamiast „próbki/” jako katalogu źródłowego).

RSYNC obsługuje transfer przyrostowy, jak widać w powyższym wyjściu, że przenosi tylko nowe pliki lub aktualizowane.

Skopiuj pliki na podstawie maksymalnego rozmiaru

Podczas kopiowania możemy również określić maksymalny rozmiar plików, które można skopiować z opcją „-max-size”. Na przykład, aby skopiować pliki nie większe niż 2000K z ~/pobierania do katalogu ~/Documents, polecenie brzmiałoby:

$ rsync -a - -max -size = 2000k/home/tin/download/*/home/tin/dokumenty

To polecenie skopiuje wszystkie pliki z katalogu ~/pobierania do ~/dokumentów, z wyjątkiem tych większych niż 2000k.

Skopiuj pliki na podstawie minimalnego rozmiaru

Podobnie możemy również określić minimalny rozmiar plików, które można skopiować z opcją „-min-wielkości”. Na przykład, aby skopiować pliki nie mniejsze niż 5m z katalogu ~/pobierania do ~/Documents, polecenie brzmiałoby:

$ rsync -a - -min -size = 5m/home/tin/pobieranie//home/tin/dokumenty

To polecenie skopiuje wszystkie pliki z ~/pobierania do katalogu ~/Documents, z wyjątkiem tych mniejszych niż 5m.

Wykluczyć pliki

Kopiując pliki z jednego katalogu do drugiego, możesz wykluczyć niektóre pliki za pomocą opcji „-exclude”, a następnie nazwy pliku lub rozszerzenia typu pliku.

Na przykład, aby wykluczyć wszystkie .Pliki zip Podczas kopiowania plików z ~/pobierania do katalogu ~/Documents, poleceniem byłoby:

$ rsync -a --exclude = "*.Zip "/home/tin/pliki do pobrania//home/tin/dokumenty

Kopiuj pliki i katalogi zdalnie

Za pomocą rsync możesz skopiować pojedynczy plik, wiele plików i katalogów do zdalnego systemu. Aby zdalnie kopiować pliki i katalogi, będziesz wymagać:

  • Rsync zainstalowany zarówno w systemie lokalnym, jak i zdalnym
  • SSH Dostęp do systemu zdalnego
  • Zdalne hasło użytkownika

Przed skopiowaniem plików za pomocą RSync upewnij się, że możesz uzyskać dostęp do systemu zdalnego za pośrednictwem SSH:

$ ssh remote_user@remote_ip


Ogólna składnia do kopiowania plików i katalogów do systemu zdalnego za pomocą RSync:

$ rsync [opcja] [Źródło] [Remoteuser@remoteIp: miejsce docelowe]

Na przykład, aby skopiować pojedynczy plik „Plik.txt ”Od ~/pobierania do katalogu zdalnego systemu ~/Documents, poleceniem byłoby:

$ rsync -v ~/pobrań/file1.txt [email protected]: ~/dokumenty

Podobnie, aby skopiować katalog „~/pobieranie/pliki” w systemie lokalnym z jego sub-drektorycznym i całą zawartością do katalogu „~/pobieranie/próbki” w systemie zdalnym:

$ rsync -rv ~/pliki/pliki [email protected]: ~/pobieranie/próbki

Możesz także skopiować pliki i katalogi z zdalnego komputera na komputer lokalny. Na przykład, aby skopiować „File2.txt ”od systemu zdalnego do lokalnego pulpitu systemu:

$ rsync -v [email protected]: ~/Downloads/File2.txt ~/Desktop/

Podobnie, aby skopiować katalog z systemu zdalnego do systemu lokalnego

$ rsync -rv [email protected]: ~/pobieranie/próbka ~/Desktop/Test

Możesz także użyć wszystkich opcji, takich jak -max -size, -min -size, -exclude i inne, jednocześnie kopiując pliki do/z zdalnego systemu.

RSync to świetne narzędzie do kopiowania plików z źródła do miejsca docelowego albo lokalnie lub zdalnie. Zawiera duży zestaw opcji, który zapewnia elastyczność i kontrolę podczas przesyłania plików do/ze zdalnego systemu.