rsync

Jak używać rsync do kopiowania plików

Jak używać rsync do kopiowania plików
Rsync to narzędzie wiersza poleceń 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 zdalnego systemu przez SSH.

W tym artykule wyjaśnimy, jak używać rsync do kopiowania plików z kilkoma praktycznymi przykładami. 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:

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 w wierszu 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:

$ sudo apt install 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
-P: tłumienie wyjścia

Kopiuj pliki i katalogi lokalnie

Ogólna składnia rsync to:

$ rsync [opcja] [źródło] [cel]

Skopiuj jeden plik lokalnie

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

Na przykład, aby skopiować pojedynczy plik „plik1.txt” z bieżącej lokalizacji, czyli katalogu domowego do katalogu ~/Documents, polecenie to:

$ rsync /home/cyna/plik1.txt /home/cyna/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 następnie nazwa pliku źródłowego i katalog docelowy.

Na przykład, aby skopiować pliki „plik2.txt” i „plik3.txt” z katalogu domowego do katalogu ~/Documents, polecenie to:

$ rsync /home/tin/file2.txt /home/cyna/plik3.txt /home/cyna/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 domowego kończące się na „.zip” do katalogu ~/Documents, użyjemy:

$ rsync /home/pl/*.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ć katalog „sample” do katalogu „test/” w katalogu domowym, polecenie to:

$ rsync -av /home/tin/sample /home/tin/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 katalog źródłowy „sample” 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 -a --max-size=2000k /home/tin/Downloads/* /home/tin/Documents

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 -a --min-size=5M /home/tin/Downloads/ /home/tin/Documents

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 .zip podczas kopiowania plików z ~/Downloads do katalogu ~/Documents, polecenie to:

$ rsync -a --exclude="*.zip" /home/pl/Pobieranie//home/pl/Dokumenty

Kopiuj zdalnie pliki i katalogi

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

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

$ ssh zdalny_użytkownik@zdalny_ip


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

$ rsync [opcja] [źródło] [zdalnyużytkownik@zdalnyip:miejsce docelowe]

Na przykład, aby skopiować pojedynczy plik „plik.txt” z katalogu ~/Downloads do systemu zdalnego ~/Documents, polecenie to:

$ rsync -v ~/Pobrane/plik1.txt [email protected]:~/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 ~/Pobieranie/pliki [email protected]:~/Pobieranie/próbki

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

$ rsync -v [email protected]:~/Pobrane/plik2.txt ~/Pulpit/

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

$ rsync -rv [email protected]:~/Pobieranie/przykład ~/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.

Gry Vulkan for Linux Users
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
Gry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
Gry OpenTTD Tutorial
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...