Skip to main content
  • »
  • NETWORKING »
  • Jak przesyłać i synchronizować pliki za pomocą SCP/RSYNC?

Jak przesyłać i synchronizować pliki za pomocą SCP/RSYNC?

SCP i RSYNC to usługi używane odpowiednio do kopiowania lub synchronizowania plików między oddzielnymi lokalizacjami.

Polecenie SCP (bezpieczne kopiowanie) jest oparte na ssh i działa poprzez odczytanie pliku źródłowego i skopiowanie go do wybranego miejsca docelowego - lokalnie lub przez sieć.

Polecenie RSYNC może być również używane do kopiowania plików lokalnie lub przez sieć jak scp powyżej, ale dodatkowo to polecenie synchronizuje dane. Nie kopiuje i nie wkleja całego katalogu, ale jest w stanie wykryć zmiany i replikować je do miejsca docelowego.

SCP

Ogólna składnia używana dla scp:

scp [options] [source] [destination]

Podstawowy przykład będzie wyglądał mniej więcej tak:

scp home/test/file1 [email protected]:/home/eouser/

Objaśnienie:

  1. home/test/file1 jest plikiem źródłowym

  2. eouser jest nazwą użytkownika serwera

  3. 185.178.13.12 to adres IP zdalnego serwera

  4. home/eouser/ to katalog docelowy

Dane wyjściowe:

file1 100% 230 43.6KB/s 00:00

Opcje:

  • -r służy głównie do kopiowania folderów i jest używanyna o rekurencyjnego kopiowania całych katalogów.

  • -P określa port, z którym należy się połączyć na zdalnym hoście.

  • -c wybiera szyfr używany do szyfrowania przesyłanych danych.

  • -C włącza kompresję

  • -i identity_file Ta opcja jest niezbędna, jeśli domyślne pliki uwierzytelniające połączenie ssh (id_rsa) nie są używane.

scp example

scp -i ~/.ssh/<private_key>  <file/directory> [email protected]:/home/eouser/

scp output:

<file> 100% 1680    49.6KB/s   00:00

RSYNC

Ogólna składnia dla rsync:

*rsync [options] [source] [destination]*

Podstawowy przykład będzie wyglądał mniej więcej tak:

rsync -avz –progress -e "ssh -i /home/account/.ssh/id_rsa" file1 [email protected]:/home/eouser/

Dane wyjściowe:

sending incremental file listfile1sent 135 bytes  received 35 bytes  113.33 bytes/sectotal size is 57  speedup is 0.3

Opcje:

  • v : pokaże Ci szczegółowe informacje o przebiegu działania

  • -r : kopiuje dane rekurencyjnie (należy zachować ostrożność, nie kopiuje to uprawnień do plików/katalogów podczas przesyłania danych)

  • -a : tryb archiwizacji; umożliwia kopiowanie plików rekurencyjnie, a także zachowuje dowiązania symboliczne, uprawnienia do plików, prawa użytkowników i grup oraz znaczniki czasu.

  • -z : kompresja danych

*-h : format czytelny dla człowieka, liczby wyjściowe w formacie czytelnym dla człowieka

Musisz dodać swój prywatny klucz ssh do uwierzytelniania za pomocą parametru -e.

Przykład rsync

rsync -avz -e "ssh -i ~/.ssh/<private_key>" <file/directory> [email protected]:/home/eouser/

Wyjście rsync:

sending incremental file list
<file>

sent 1,404 bytes  received 35 bytes  959.33 bytes/sec
total size is 1,680  speedup is 1.17