Kopiowanie i tworzenie kopii zapasowych plików i folderów przy użyciu narzędzia Rsync | INTROSERV

Kopiowanie i tworzenie kopii zapasowych plików i folderów przy użyciu narzędzia Rsync

Rsync to szybkie i wszechstronne narzędzie do kopiowania plików i folderów. Narzędzie może kopiować dane zarówno lokalnie, jak i na inne hosty, w tym do Cloud Storage od Introserv. Opcje narzędzia pozwalają kontrolować wiele aspektów kopiowania i tworzenia kopii lustrzanych danych. Jedną z głównych funkcji jest możliwość kompresji danych podczas wysyłania, co pozwala przyspieszyć proces kopiowania między serwerami. Kolejną zaletą jest pomijanie identycznych plików podczas kopiowania. Dzięki temu kopiowane lub przesyłane będą tylko różniące się pliki, co niewątpliwie pozwoli zaoszczędzić czas synchronizacji dużych katalogów.

Opcje narzędzia

Przyjrzyjmy się przykładom użycia Rsync do kopiowania plików i katalogów do zdalnego Cloud Storage od Introserv przy użyciu protokołu SSH. Ważne! Podobne polecenia, z określeniem serwera docelowego, pozwolą kopiować katalogi i pliki na dowolny zdalny serwer przez SSH.

Przyjrzyjmy się niektórym głównym opcjom narzędzia, które będą używane najczęściej. Bardziej szczegółowa lista dostępnych opcji znajduje się w dokumentacji man (polecenie man rsync):

-v – wyświetlanie szczegółowych informacji o procesie
-c – sprawdzanie sum kontrolnych plików
-q – minimalna ilość informacji
-a – tryb archiwizacji
-R – ścieżki względne
-y – nie nadpisuj nowszych plików
-b – tworzenie kopii zapasowej
-l – kopiowanie dowiązań symbolicznych
-L – kopiowanie zawartości linków
-H – kopiowanie twardych dowiązań
-g – zachowanie grupy
-p – zachowanie uprawnień do plików
-t – zachowanie czasu modyfikacji
-x – praca tylko w tym systemie plików
-e – użycie innego protokołu transportowego (np. ssh)
-z – kompresja plików przed przesłaniem
--delete – usuwanie plików, których nie ma w źródle
--exclude – wykluczanie plików
--recursive – rekurencyjne przeglądanie katalogów
--no-recursive – wyłączenie rekurencji
--progress – wyświetlanie postępu przesyłania plików
--stat – wyświetlanie statystyk przesyłania
--max-size – maksymalny rozmiar pliku do przesłania
--bwlimit – ograniczenie prędkości przesyłania plików

Krótkie wyjaśnienie składni

rsync -az --progress /home/user/test.file boxxxx@boxxxxx.introserv.cloud:/remote_folder/

-az --progress – opcje wskazujące, że należy zarchiwizować przesyłany plik, skompresować go przed przesłaniem, a także wyświetlić postęp kopiowania na ekranie

/home/user/test.file – ścieżka do pliku i sam plik, który ma zostać przesłany

boxxxx@boxxxxx.introserv.cloud: – zasób docelowy (w naszym przykładzie jest to cloud storage, ale może to być również zdalny serwer). boxxxx to nazwa użytkownika, po znaku @ znajduje się nazwa zasobu lub adres IP zdalnego serwera

/remote_folder/ – folder na zdalnym zasobie. W naszym przykładzie – w Introserv Cloud Storage.

Kopiowanie jednego pliku do folderu na zdalnym storage

rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/

Zostaniesz poproszony o podanie hasła do połączenia ze storage. Wprowadź hasło i kontynuuj – zobaczysz postęp i prędkość przesyłania pliku.

Kopiowanie folderu do folderu na zdalnym storage

Zwróć uwagę na ukośniki w liniach folderu źródłowego i folderu docelowego. Brak ukośnika w folderze źródłowym oznacza, że chcemy rekurencyjnie przenieść lokalny folder Desktop z całą jego zawartością do folderu remote_folder.

rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/

Zobaczysz katalog i wszystkie pliki wewnątrz niego podczas przesyłania.

Kopiowanie zawartości lokalnego folderu do folderu na zdalnym storage

Zwróć uwagę na ukośnik na końcu folderu źródłowego. Jego obecność oznacza, że narzędzie powinno skopiować zawartość lokalnego folderu do folderu na zdalnym storage.

rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Zobaczysz postęp i prędkość kopiowania.

Kopiowanie folderu ze zdalnego storage do folderu na lokalnym serwerze

Za pomocą Rsync możesz zainicjować kopiowanie folderu ze zdalnego storage. Polecenie wygląda następująco:

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/

Zobaczysz postęp i prędkość kopiowania zdalnego folderu do folderu na lokalnym serwerze.

Kopiowanie zawartości folderu ze zdalnego storage do folderu na lokalnym serwerze

Tutaj również warto zwrócić uwagę na ukośnik na końcu ścieżki folderu źródłowego. Jego obecność oznacza, że należy skopiować tylko zawartość folderu.

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder/ /home/user/Desktop/

Kopiowanie zawartości folderu z wykluczeniem i/lub włączeniem plików

Narzędzie pozwala jawnie określić, które pliki mają być przesyłane, a które powinny być wykluczone. W tym celu należy użyć opcji --include i --exclude.

rsync -azr --progress --include 'test.file' --exclude 'test.file2' /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Zobaczysz, że przesłany został tylko jeden plik, określony przez opcję --include. Pamiętaj, że opcje include i exclude mogą być używane oddzielnie.

Kopiowanie tylko plików różniących się od plików w folderze docelowym

Aby anulować kopiowanie identycznych plików, należy użyć opcji -c do sprawdzania sum kontrolnych plików. Pozwoli to wykluczyć z procesu kopiowania te pliki, które już znajdują się w folderze docelowym.

rsync -azrc --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Zobaczysz, że do zdalnego folderu skopiowane zostały tylko różniące się pliki, z wyjątkiem plików, które już znajdują się na zdalnym storage.

Używanie Rsync przez SSH z niestandardowym portem SSH

Aby przesłać pliki z/do serwera ze zmienionym portem SSH, użyj opcji -e 'ssh -p numer_portu'.

Polecenie kopiowania pliku na serwer, na którym port SSH został zmieniony na 44, będzie wyglądać następująco:

rsync -azrc --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/

VAT

  • Other

    Other

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    %
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • Other
  • canada
  • poland
  • european-union
  • france
  • germany
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria