Jak używać rsync do kopiowania plików

How Use Rsync Copy Files



Rsync to narzędzie wiersza polecenia w systemie Linux, które służy do kopiowania plików z lokalizacji źródłowej do lokalizacji docelowej. Możesz kopiować pliki, katalogi i cały system plików oraz synchronizować pliki między różnymi katalogami. To coś więcej niż tylko kopiowanie plików. Zmniejsza ilość danych przesyłanych przez sieć, wysyłając tylko nowe lub zaktualizowane pliki. Dlatego jest uważany za świetne narzędzie do kopiowania i tworzenia kopii zapasowych plików. Rsync obsługuje również kopiowanie plików do systemu zdalnego przez SSH.

W tym artykule wyjaśnimy, jak używać rsync do kopiowania plików na kilku praktycznych przykładach. Wyjaśnimy również użycie rsync do kopiowania pojedynczego pliku, wielu plików i katalogu do systemów lokalnych i zdalnych. Omówimy, jak używać Rsync do:







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

Wyjaśniliśmy polecenia i procedury wymienione w tym artykule na Ubuntu 20.04 LTS. Będziesz potrzebował terminala wiersza poleceń do kopiowania plików za pomocą rsync. Aby otworzyć aplikację Terminal wiersza poleceń, użyj skrótu klawiaturowego Ctrl+Alt+T.



Instalowanie Rsync

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



$sudotrafnyzainstalowaćrsync

Oto niektóre z najczęściej używanych opcji, których można użyć z rsync:





–a: tryb archiwum
–v: pokazuje szczegóły procesu kopiowania
–p: pokazuje pasek postępu
–r: kopiuje dane rekurencyjnie
–z: kompresuje dane
–q: wyłącz wyjście

Kopiuj pliki i katalogi lokalnie

Ogólna składnia rsync to:



$rsync[opcja] [źródło] [Miejsce docelowe]

Skopiuj jeden plik lokalnie

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

Na przykład, aby skopiować pojedynczy plik file1.txt z bieżącej lokalizacji, czyli katalogu domowego do katalogu ~/Documents, polecenie powinno wyglądać tak:

$rsync/Dom/uwierzyć/plik1.txt/Dom/uwierzyć/Dokumenty

Uwaga: Zamiast /home/tin/file1.txt możemy również wpisać plik1, ponieważ aktualnie pracujemy w katalogu domowym. Ponadto możemy użyć ~/Documents zamiast wymieniać pełną ścieżkę jako /home/tin/Documents.

Kopiuj 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 po której następuje nazwa pliku źródłowego i katalog docelowy.

Na przykład, aby skopiować pliki file2.txt i file3.txt z katalogu domowego do katalogu ~/Documents, polecenie będzie wyglądało następująco:

$rsync/Dom/uwierzyć/plik2.txt/Dom/uwierzyć/plik3.txt/Dom/uwierzyć/Dokumenty

Aby skopiować wszystkie pliki o tym samym rozszerzeniu, możesz użyć symbolu gwiazdki(*) zamiast indywidualnie określać nazwy plików. Na przykład, aby skopiować wszystkie pliki z katalogu Home, kończące się rozszerzeniem .zip do katalogu ~/Documents, użyjemy:

$rsync/Dom/uwierzyć/ *.zip ~/Dokumenty

Kopiuj katalogi lokalnie

Jeśli chcesz skopiować katalog z jego podkatalogami i całą zawartością z jednej lokalizacji do drugiej w systemie, możesz to zrobić, wpisując rsync po którym następuje katalog źródłowy i docelowy.

Na przykład, aby skopiować przykładowy katalog do katalogu test/ w katalogu domowym, polecenie to:

$rsync-z /Dom/uwierzyć/próbka/Dom/uwierzyć/test

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

Podobnie jak w poniższym wyjściu, możesz zobaczyć, że nasz przykładowy katalog źródłowy jest również kopiowany do katalogu docelowego (ponieważ użyliśmy sample zamiast sample/ jako katalogu źródłowego).

Rsync obsługuje transfer przyrostowy, jak widać na powyższym wyjściu, że przesyła tylko pliki, które są nowe lub zaktualizowane.

Skopiuj pliki na podstawie maksymalnego rozmiaru

Podczas kopiowania możemy również określić maksymalny rozmiar plików, które można skopiować za pomocą opcji –max-size. Na przykład, aby skopiować pliki nie większe niż 2000k z ~/Downloads do katalogu ~/Documents, polecenie powinno wyglądać tak:

$rsync-do --największy rozmiar=2000k/Dom/uwierzyć/Pliki do pobrania/ * /Dom/uwierzyć/Dokumenty

To polecenie skopiuje wszystkie pliki z ~/Downloads do katalogu ~/Documents 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ć za pomocą opcji –min-size. Na przykład, aby skopiować pliki nie mniejsze niż 5M z ~/Downloads do katalogu ~/Documents, polecenie powinno wyglądać tak:

$rsync-do --min-rozmiar=5M/Dom/uwierzyć/Pliki do pobrania/ /Dom/uwierzyć/Dokumenty

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

Wyklucz pliki

Podczas kopiowania plików z jednego katalogu do drugiego możesz wykluczyć niektóre pliki za pomocą opcji —exclude, po której następuje nazwa pliku lub rozszerzenie typu pliku.

Na przykład, aby wykluczyć wszystkie pliki .zip podczas kopiowania plików z ~/Downloads do katalogu ~/Documents, polecenie to:

$rsync-do --wykluczać='*.zamek błyskawiczny' /Dom/uwierzyć/Pliki do pobrania/ /Dom/uwierzyć/Dokumenty

Kopiuj zdalnie pliki i katalogi

Dzięki Rsync możesz skopiować pojedynczy plik, wiele plików i katalogów do systemu zdalnego. Do zdalnego kopiowania plików i katalogów będziesz potrzebować:

  • Rsync zainstalowany w systemie lokalnym i zdalnym
  • Dostęp SSH do zdalnego systemu
  • Hasło użytkownika zdalnego

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

$ciszazdalny_użytkownik@zdalne IP


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

$rsync[opcja] [źródło] [zdalny użytkownik@adres zdalny: miejsce docelowe]

Na przykład, aby skopiować pojedynczy plik file.txt z ~/Downloads do zdalnego katalogu ~/Documents, polecenie powinno wyglądać tak:

$rsync-v~/Pliki do pobrania/plik1.txt@192.168.72.164:~/Dokumenty

Podobnie, aby skopiować katalog ~/Downloads/files w systemie lokalnym wraz z jego podkatalogiem i całą zawartością do katalogu ~/Downloads/samples w systemie zdalnym:

$rsync-rv~/Pliki do pobrania/pliki umra@192.168.72.164:~/Pliki do pobrania/próbki

Możesz także skopiować pliki i katalogi z komputera zdalnego na komputer lokalny. Na przykład, aby skopiować plik file2.txt z systemu zdalnego na pulpit systemu lokalnego:

$rsync-vUmara@192.168.72.164:~/Pliki do pobrania/plik2.txt ~/Pulpit/

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

$rsync-rvUmara@192.168.72.164:~/Pliki do pobrania/próbka ~/Pulpit/test

Możesz także użyć wszystkich opcji, takich jak –max-size, –min-size, –exclude i innych podczas kopiowania plików do/z systemu zdalnego.

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