Android

Jak używać rsync do lokalnego i zdalnego przesyłania danych i synchronizacji

Use Rsync to Restore Backed up Files from a Synology NAS to a Linux PC!

Use Rsync to Restore Backed up Files from a Synology NAS to a Linux PC!

Spisu treści:

Anonim

Rsync to szybkie i wszechstronne narzędzie wiersza poleceń, które synchronizuje pliki i foldery między dwiema lokalizacjami za pośrednictwem zdalnej powłoki lub z / do zdalnego demona Rsync. Zapewnia szybki przyrostowy transfer plików, przenosząc tylko różnice między źródłem a miejscem docelowym.

Rsync może być używany do tworzenia kopii lustrzanych danych, przyrostowych kopii zapasowych, kopiowania plików między systemami oraz jako zamiennik poleceń scp , sftp i cp do codziennego użytku.

W tym samouczku pokażemy, jak korzystać z rsync poprzez praktyczne przykłady i szczegółowe objaśnienia najczęściej używanych opcji rsync .

Instalowanie Rsync

Narzędzie rsync jest wstępnie zainstalowane w większości dystrybucji systemu Linux i macOS. Możesz sprawdzić, czy jest on zainstalowany w systemie, wpisując:

rsync --version

rsync version 3.1.2 protocol version 31

Zainstaluj Rsync na Ubuntu i Debianie

sudo apt install rsync

Zainstaluj Rsync na CentOS i Fedorze

sudo yum install rsync

Składnia polecenia Rsync

Zanim przejdziemy do korzystania z polecenia rsync , zacznijmy od zapoznania się z podstawową składnią.

Wyrażenia narzędzia rsync mają następującą postać:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - Opcje rsync. SRC - katalog źródłowy. DEST - katalog docelowy. USER - Zdalna nazwa użytkownika. HOST - Zdalna nazwa hosta lub adres IP.

rsync zapewnia wiele opcji, które kontrolują każdy aspekt jego zachowania. Najczęściej używane opcje to:

  • -a , --archive , tryb archiwizacji, równoważny -rlptgoD . Ta opcja każe rsync synchronizować katalogi rekurencyjnie, przenosić urządzenia specjalne i blokować, zachować łącza symboliczne, czasy modyfikacji, grupę, własność i uprawnienia. -z , --compress . Ta opcja wymusi na rsync kompresowanie danych przesyłanych do komputera docelowego. Tej opcji należy używać tylko wtedy, gdy połączenie ze zdalnym urządzeniem jest wolne. -P , równoważne z --partial --progress . Gdy ta opcja jest używana, rsync wyświetli pasek postępu podczas przesyłania i zatrzyma częściowo przesłane pliki. Jest to przydatne podczas przesyłania dużych plików przez wolne lub niestabilne połączenia sieciowe. --delete . Podczas korzystania z tej opcji rsync usunie zbędne pliki z lokalizacji docelowej. Jest to przydatne do tworzenia kopii lustrzanych. -q , - --quiet . Użyj tej opcji, jeśli chcesz ukryć komunikaty inne niż błędy. -e . Ta opcja pozwala wybrać inną zdalną powłokę. Domyślnie rsync jest skonfigurowany do używania ssh.

Podstawowe użycie Rsync

Aby skopiować pojedynczy plik z jednej do innej lokalizacji lokalnej, uruchom następującą komendę:

rsync -a /opt/filename.zip /tmp/

Użytkownik uruchamiający polecenie musi mieć uprawnienia do odczytu w lokalizacji docelowej i uprawnienia do zapisu w lokalizacji docelowej.

Pominięcie nazwy pliku z lokalizacji docelowej powoduje skopiowanie pliku z bieżącą nazwą. Jeśli chcesz zapisać plik pod inną nazwą, podaj nową nazwę w części docelowej:

rsync -a /opt/filename.zip /tmp/newfilename.zip

W poniższym przykładzie tworzymy lokalną kopię zapasową plików naszej witryny:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Jeśli katalog docelowy nie istnieje, rsync go utworzy.

Warto wspomnieć, że rsync zapewnia odmienne traktowanie katalogów źródłowych za pomocą ukośnika / . Dodanie ukośnika końcowego do katalogu źródłowego spowoduje skopiowanie tylko zawartości katalogu do katalogu docelowego. Po pominięciu końcowego ukośnika rsync skopiuje katalog źródłowy do katalogu docelowego.

Jak używać Rsync do synchronizacji danych z / do zdalnego komputera

Gdy używasz rsync do zdalnego przesyłania, musi być zainstalowany zarówno na komputerze źródłowym, jak i docelowym. Nowe wersje rsync są skonfigurowane do używania SSH jako domyślnej powłoki zdalnej.

W poniższym przykładzie przenosimy katalog z lokalnego na zdalny komputer:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ Jeśli nie ustawiłeś bez logowania hasła SSH na zdalnym komputerze, zostaniesz poproszony o podanie hasła użytkownika.

Jeśli chcesz przenieść dane ze zdalnego na komputer lokalny, musisz użyć zdalnej lokalizacji jako źródła:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Jeśli SSH na zdalnym hoście nasłuchuje na porcie innym niż domyślny 22, możesz określić port za pomocą opcji -e :

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Podczas przesyłania dużych ilości danych zaleca się uruchomienie komendy rsync w sesji ekranowej lub użycie opcji -P :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Wyklucz pliki i katalogi

Wykluczając pliki lub katalogi, musisz użyć ich względnych ścieżek do lokalizacji źródłowej.

Istnieją dwie opcje wykluczania plików i katalogów. Pierwszą opcją jest użycie argumentu --exclude i określenie plików i katalogów, które chcesz wykluczyć w wierszu poleceń.

W poniższym przykładzie wykluczamy node_modules i tmp znajdujące się w katalogu src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

Drugą opcją jest użycie argumentu --exclude-from i określenie plików i katalogów, które chcesz wykluczyć z pliku.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

Wniosek

W tym samouczku nauczyłeś się, jak używać Rsync do kopiowania i synchronizowania plików i katalogów. Jest wiele więcej informacji na temat Rsync na stronie Podręcznika użytkownika Rsync.

Jeśli masz jakieś pytania, zostaw komentarz.

terminal rsync