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

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

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 Cloud Storage od INTROSERV. Opcje narzędzia pozwalają kontrolować wiele aspektów kopiowania i mirrorowania danych. Jedną z przydatnych funkcji jest możliwość kompresji danych podczas transferu, co może zmniejszyć ruch sieciowy i poprawić szybkość transferu, gdy przepustowość sieci jest czynnikiem ograniczającym. Kolejną zaletą jest to, że Rsync unika przesyłania plików, które nie wymagają aktualizacji. Domyślnie porównuje rozmiar pliku i czas modyfikacji, przesyłając tylko pliki, które wydają się zmienione, co niewątpliwie oszczędza czas przy synchronizacji dużych katalogów.

Info

Dlaczego warto używać flagi -a? Opcja -a (archive) to najczęstszy wybór. Włącza kopiowanie rekurencyjne i zachowuje typowe atrybuty plików: uprawnienia, właściciela, grupę, czasy modyfikacji i dowiązania symboliczne. Ponieważ -a zawiera już rekurencję, nie trzeba dodawać osobno -r.

Opcje narzędzia

Przyjrzyjmy się przykładom użycia Rsync do kopiowania plików i katalogów do zdalnego Cloud Storage od INTROSERV za pomocą protokołu SSH.

Info

Te polecenia są uniwersalne. Wystarczy zamienić adres docelowy i ścieżkę, aby synchronizować pliki z dowolnym zdalnym serwerem przez SSH.

Przyjrzyjmy się kilku głównym opcjom narzędzia, które będą używane najczęściej. Bardziej szczegółową listę dostępnych opcji można znaleźć w dokumentacji man (polecenie man rsync):

-v – wyświetla szczegółowe informacje o procesie
-c – sprawdza sumy kontrolne plików
-q – minimalna ilość informacji
-a – tryb archiwizacji
-R – ścieżki względne
-y – nie nadpisuj nowszych plików
-b – tworzy kopię zapasową
-l – kopiuje dowiązania symboliczne
-L – kopiuje zawartość dowiązań
-H – kopiuje dowiązania twarde
-g – zachowuje grupę
-p – zachowuje uprawnienia plików
-t – zachowuje czas modyfikacji
-x – działa tylko w tym systemie plików
-e – używa innego protokołu transportu (na przykład ssh)
-z – kompresuje pliki przed przesłaniem
--delete – usuwa pliki, których nie ma w źródle
--exclude – wyklucza pliki
--recursive – wylicza katalogi rekurencyjnie
--no-recursive – wyłącza rekurencję
--progress – wyświetla postęp przesyłania plików
--stat – pokazuje statystyki transferu
--max-size – maksymalny rozmiar pliku do przesłania
--bwlimit – limit prędkości dla przesyłania plików

Krótkie wyjaśnienie składni

Warning

Zasada ukośnika końcowego (/). To tutaj większość użytkowników popełnia błędy: /folder (bez ukośnika) kopiuje sam folder. /folder/ (z ukośnikiem) kopiuje tylko zawartość folderu.

rsync -az --progress /home/user/test.file boxxxx@storage_ip:/remote_folder/

-a – tryb archiwizacji: kopia rekurencyjna zachowująca atrybuty plików

-z – kompresuje dane podczas przesyłania

--progress – wyświetla postęp przesyłania

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

boxxxx@storage_ip: – to 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/ – to folder na zdalnym zasobie. W naszym przykładzie w INTROSERV Cloud Storage.

Kopiowanie jednego pliku do folderu na zdalnym magazynie

rsync -az --progress /home/user/Desktop/test.file boxxxx@storage_ip:/remote_folder/

Zostaniesz poproszony o podanie hasła do połączenia z magazynem. Wpisz hasło i kontynuuj — zobaczysz postęp i prędkość przesyłania pliku.

Kopiowanie folderu do folderu na zdalnym magazynie

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

rsync -az --progress /home/user/Desktop boxxxx@storage_ip:/remote_folder/

Zobaczysz, jak katalog i wszystkie znajdujące się w nim pliki są przesyłane.

Kopiowanie zawartości lokalnego folderu do folderu na zdalnym magazynie

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

rsync -az --progress /home/user/Desktop/ boxxxx@storage_ip:/remote_folder/

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

Kopiowanie folderu ze zdalnego magazynu do folderu na serwerze lokalnym

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

rsync -az --progress boxxxx@storage_ip:/remote_folder /home/user/Desktop/

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

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

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 -az --progress boxxxx@storage_ip:/remote_folder/ /home/user/Desktop/

Kopiowanie zawartości folderu z wykluczeniem i/lub uwzględnieniem plików

Narzędzie umożliwia jawne określenie, które pliki mają zostać przesłane, a które wykluczone. W tym celu użyj opcji --include i --exclude. Reguły są przetwarzane w kolejności, więc reguła włączająca musi znajdować się przed regułą wykluczającą, która w przeciwnym razie dotyczyłaby tego samego pliku.

Tip

Przetestuj z uruchomieniem próbnym. Przed wykonaniem polecenia, które modyfikuje lub usuwa wiele plików, dodaj flagę -n lub --dry-run. Rsync pokaże Ci dokładnie, co by zrobił, bez faktycznego przenoszenia lub usuwania czegokolwiek.

rsync -az --progress --include='test.file' --exclude='*' /home/user/Desktop/ boxxxx@storage_ip:/remote_folder/

To polecenie przesyła test.file i wyklucza wszystko inne w katalogu źródłowym. To reguła --exclude='*' ogranicza przesyłanie do jednego uwzględnionego pliku, dlatego obie opcje są tutaj potrzebne razem.

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

Domyślnie Rsync decyduje, czy plik wymaga przesłania, na podstawie jego rozmiaru i czasu modyfikacji. Użyj opcji -c, gdy chcesz, aby Rsync zamiast tego porównywał zawartość plików za pomocą sumy kontrolnej. Jest to bardziej niezawodne, gdy nie można ufać znacznikom czasu, ale jest wolniejsze, ponieważ obie strony muszą odczytać pliki, aby obliczyć sumy kontrolne.

rsync -azc --progress /home/user/Desktop/ boxxxx@storage_ip:/remote_folder/

Dzięki -c Rsync porównuje zawartość plików źródłowych i docelowych za pomocą sum kontrolnych i przesyła tylko te pliki, których zawartość się różni.

Używanie Rsync przez SSH z niestandardowym portem SSH

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

Polecenie do skopiowania pliku na serwer, na którym port SSH został zmieniony na 44, wygląda następująco:

rsync -azc --progress -e 'ssh -p 44' /home/user/Desktop/ user@server_ip:/remote_folder/

Info

Uwaga dotycząca bezpieczeństwa: Zmiana domyślnego portu SSH może zmniejszyć liczbę automatycznych skanowań i niepożądanych prób połączenia, ale nie zastępuje odpowiedniego zabezpieczenia SSH, takiego jak uwierzytelnianie oparte na kluczach i reguły zapory sieciowej. Zawsze upewnij się, że Twoja zapora sieciowa zezwala na ruch na wybranym porcie.

VAT

  • Other

    Ex. VAT

    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

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA