Tworzenie kopii zapasowych danych między serwerami Instrukcja | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

Tworzenie kopii zapasowych danych między serwerami

Ten przewodnik wyjaśnia, jak kopiować i tworzyć kopie zapasowe danych między serwerami Linux za pomocą rsync, a także jak wykonywać niskopoziomowe klonowanie dysków za pomocą dd.

Przed rozpoczęciem

Polecenia opisane w tym przewodniku są wykonywane na serwerze źródłowym, czyli serwerze, z którego kopiowane są dane. Serwer docelowy musi być dostępny przez SSH, a użytkownik określony w poleceniu musi mieć uprawnienia do odczytu ścieżki źródłowej oraz zapisu w ścieżce docelowej.

Aby sprawdzić dostęp SSH do serwera docelowego przed rozpoczęciem tworzenia kopii zapasowej:

ssh user@destination_host

Zastąp user nazwą zdalnego użytkownika, a destination_host adresem IP lub nazwą hosta serwera docelowego.

Info

W przypadku automatycznych lub zaplanowanych kopii zapasowych skonfiguruj uwierzytelnianie SSH za pomocą kluczy zamiast używania haseł.

Kopiowanie katalogu na zdalny serwer

Zwróć uwagę, że końcowy ukośnik w ścieżce źródłowej wpływa na działanie rsync: /source/ kopiuje zawartość katalogu, natomiast /source kopiuje sam katalog.

Zawsze używaj --dry-run przed wykonaniem poleceń z --delete, aby uniknąć przypadkowej utraty danych. Aby wyświetlić podgląd danych, które zostaną przesłane, bez wprowadzania zmian:

rsync -a --delete --dry-run -e ssh /path/to/source/ user@destination_host:/path/to/backup/

Po sprawdzeniu wyniku uruchom to samo polecenie bez --dry-run. Dodaj -P, aby umożliwić wznowienie przerwanego transferu i wyświetlić jego postęp:

rsync -a --delete -e ssh -P /path/to/source/ user@destination_host:/path/to/backup/

Opcja -a zachowuje uprawnienia, znaczniki czasu i dowiązania symboliczne. Opcja --delete zapewnia, że miejsce docelowe będzie dokładnym lustrem źródła, usuwając pliki, których nie ma w źródle. Dodaj -v, aby wyświetlić szczegółowe informacje.

Warning

Opcja --delete usunie z miejsca docelowego pliki, których nie ma w źródle. Nie używaj jej, jeśli w miejscu docelowym znajdują się pliki, które powinny być przechowywane niezależnie.

Kopiowanie większości plików systemowych

Aby skopiować większość systemu plików z pominięciem katalogów wirtualnych i tymczasowych:

rsync -aAXv --delete --one-file-system --numeric-ids \ --exclude={/dev/,/proc/,/sys/,/tmp/,/run/,/mnt/,/media/,/lost+found,/swapfi le} \ / user@destination_host:/path/to/backup/

Użyte opcje: -a zachowuje uprawnienia, znaczniki czasu, dowiązania symboliczne i wykonuje kopiowanie rekurencyjne; -A zachowuje ACL; -X zachowuje atrybuty rozszerzone; -v wyświetla szczegółowe informacje. Opcja -H dotycząca twardych dowiązań została celowo pominięta: twarde dowiązania systemowe nie muszą być replikowane w zdalnej kopii zapasowej, a ich zachowanie zwiększa czas i złożoność transferu. Opcja --one-file-system uniemożliwia rsync przechodzenie do innych zamontowanych systemów plików. Opcja --numeric-ids zachowuje wartości UID i GID bez mapowania ich na nazwy użytkowników, co jest ważne, gdy serwery źródłowy i docelowy mają różne konfiguracje użytkowników.

Większość wykluczonych ścieżek zawiera końcowy ukośnik, aby wykluczyć zawartość katalogu, zachowując sam katalog. /lost+found nie ma końcowego ukośnika, ponieważ wykluczony ma zostać cały katalog, a nie tylko jego zawartość. Ta sama zasada dotycząca końcowego ukośnika obowiązuje dla ścieżki źródłowej: /source/ kopiuje zawartość katalogu, podczas gdy /source kopiuje sam katalog.

Warning

Ta metoda nie tworzy uruchamialnego obrazu systemu i nie powinna być stosowana jako zamiennik pełnej kopii zapasowej systemu. Aby uzyskać spójne kopie zapasowe aktywnych systemów, przed wykonaniem polecenia rozważ zatrzymanie krytycznych usług lub użycie migawek systemu plików, takich jak migawki LVM.

Pełne klonowanie katalogu za pomocą rsync

Aby wykonać pełne klonowanie drzewa katalogów z zachowaniem twardych dowiązań, ACL i atrybutów rozszerzonych:

rsync -aAHXv /source/dir/ user@destination_host:/destination/dir/

Użyte opcje: -a zachowuje uprawnienia, znaczniki czasu, dowiązania symboliczne i wykonuje kopiowanie rekurencyjne; -A zachowuje ACL; -H zachowuje twarde dowiązania, co jest ważne przy dokładnym klonowaniu katalogu; -X zachowuje atrybuty rozszerzone; -v wyświetla szczegółowe informacje.

Klonowanie dysku za pomocą dd

Aby sklonować cały dysk na inny dysk na tym samym serwerze:

dd if=/dev/sdX of=/dev/sdY bs=1M conv=noerror,sync status=progress

Zastąp sdX dyskiem źródłowym, a sdY dyskiem docelowym. Opcje conv=noerror,sync pozwalają kontynuować kopiowanie po wystąpieniu błędów odczytu, wypełniając uszkodzone bloki zerami. Jeśli integralność danych ma kluczowe znaczenie, pomiń te opcje, aby dd zatrzymał się przy pierwszym błędzie zamiast po cichu zastępować uszkodzone bloki zerami.

Aby sklonować dysk na zdalny serwer przez SSH:

dd if=/dev/sdX bs=1M status=progress | ssh user@destination_host 'dd of=/dev/sdY bs=1M'

Miejscem docelowym może być również ścieżka do pliku zamiast urządzenia blokowego.

Warning

dd zapisuje bezpośrednio na urządzeniu lub w pliku docelowym bez pytania o potwierdzenie. Przed wykonaniem polecenia dokładnie sprawdź źródło i miejsce docelowe. W przypadku aktywnych systemów, jeśli to możliwe, odmontuj wszystkie partycje dysku źródłowego lub zamontuj je ponownie tylko do odczytu. Aby uzyskać spójne kopie zapasowe zamontowanych systemów plików, użyj migawek LVM lub uruchom system z środowiska ratunkowego.

Weryfikacja kopii zapasowej

Po zakończeniu transferu połącz się z serwerem docelowym i sprawdź rozmiar kopii zapasowej oraz jej podstawową strukturę:

ssh user@destination_host du -sh /path/to/backup/ ls /path/to/backup/

Aby dokładnie sprawdzić integralność danych, uruchom rsync z opcjami --checksum i --dry-run. Spowoduje to porównanie zawartości plików zamiast znaczników czasu i zgłoszenie wszelkich różnic:

rsync -av --checksum --dry-run /path/to/source/ user@destination_host:/path/to/backup/

Należy pamiętać, że w przypadku dużych zbiorów danych może to potrwać znacznie dłużej niż standardowe wykonanie rsync.

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