Android

Jak przesyłać pliki za pomocą rsync przez ssh

Sicheres Backup mit rsync, SSH und LUKS [Kielux 2017]

Sicheres Backup mit rsync, SSH und LUKS [Kielux 2017]

Spisu treści:

Anonim

Jeśli chodzi o przesyłanie plików między systemami w sieci, użytkownicy systemów Linux i Unix mają do dyspozycji wiele narzędzi.

Najpopularniejsze protokoły przesyłania danych to SSH i FTP. Chociaż FTP jest bardzo popularny, zawsze preferuj korzystanie z SSH, ponieważ jest to najbezpieczniejszy sposób przesyłania plików.

Istnieją wyspecjalizowane narzędzia do przesyłania plików przez SSH, takie jak scp i sftp ale żadne z nich nie ma wszystkich funkcji zapewnianych przez rsync . rsync może być używany do tworzenia kopii lustrzanych danych, przyrostowych kopii zapasowych, kopiowania plików między systemami i tak dalej.

W tym samouczku wyjaśnimy, jak skopiować pliki za pomocą rsync przez SSH.

Wymagania

  • Narzędzie rsync musi być zainstalowane zarówno w systemie docelowym, jak i źródłowym. Jeśli nie jest zainstalowany, możesz go zainstalować za pomocą menedżera pakietów swojej dystrybucji:

    Ubuntu i Debian:

    sudo apt install rsync

    CentOS i Fedora:

    sudo yum install rsync

    Dostęp SSH do komputera zdalnego.

    Użytkownik uruchamiający komendę rsync i zdalny użytkownik SSH muszą mieć odpowiednie uprawnienia do odczytu i zapisu plików.

Używanie rsync do przesyłania plików przez SSH

rsync umożliwia przesyłanie plików i katalogów przez SSH zi na zdalne serwery.

Ogólna składnia przesyłania plików za pomocą rsync jest następująca:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

Gdzie SRC jest katalogiem źródłowym, DEST to katalog docelowy USER to zdalna nazwa użytkownika SSH, a HOST to zdalny host SSH lub adres IP.

Nowsze wersje rsync są skonfigurowane do używania SSH jako domyślnej powłoki zdalnej, dzięki czemu można pominąć opcję -e ssh .

Na przykład, aby przenieść pojedynczy plik /opt/file.zip z systemu lokalnego do katalogu /var/www/ w systemie zdalnym o 12.12.12.12 IP 12.12.12.12 , należy uruchomić:

rsync -a /opt/file.zip [email protected]:/var/www/

Opcja -a oznacza tryb archiwizacji, który synchronizuje katalogi rekurencyjnie, przenosi urządzenia specjalne i blokowe, zachowuje łącza symboliczne, czasy modyfikacji, grupę, własność i uprawnienia.

Jeśli plik istnieje na zdalnym serwerze, zostanie zastąpiony. Jeśli chcesz zapisać plik pod inną nazwą, podaj nową nazwę:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Aby przenieść dane z komputera zdalnego na komputer lokalny, użyj lokalizacji zdalnej jako źródła, a lokalizacji lokalnej jako miejsca docelowego:

rsync -a [email protected]:/var/www/file.zip /opt/

Przesyłanie katalogów za pomocą rsync przez SSH jest takie samo jak przesyłanie plików.

Ważne jest, aby wiedzieć, że rsync zapewnia odmienne traktowanie katalogów źródłowych za pomocą ukośnika / . Gdy katalog źródłowy ma ukośnik końcowy, rsync skopiuje tylko zawartość katalogu źródłowego do katalogu docelowego. Po pominięciu końcowego ukośnika katalog źródłowy zostanie skopiowany do katalogu docelowego.

Na przykład, aby przenieść lokalny katalog /opt/website/images/ do katalogu /var/www/images/ na zdalnym komputerze, wpisz:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Użyj opcji --delete , jeśli chcesz zsynchronizować katalog lokalny i zdalny. Zachowaj ostrożność podczas korzystania z tej opcji, ponieważ spowoduje to usunięcie plików w katalogu docelowym, jeśli nie istnieją one w katalogu źródłowym.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Jeśli SSH na zdalnym hoście nasłuchuje na porcie innym niż domyślny 22 , określ port za pomocą opcji -e . Na przykład, jeśli SSH nasłuchuje na porcie 3322 , 3322 :

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Podczas przesyłania dużych ilości danych zaleca się uruchomienie komendy rsync w sesji ekranowej lub skorzystanie z opcji -P , która nakazuje rsync pokazać pasek postępu podczas przesyłania i zachować częściowo przesłane pliki:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Wniosek

Pokazaliśmy, jak używać rsync przez SSH do kopiowania i synchronizowania plików i katalogów.

Możesz także przeczytać, jak wykluczyć pliki lub katalogi za pomocą rsync .

Jeśli masz jakieś pytania, zostaw komentarz.

terminal rsync