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:
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ć:
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.