Jak skopiować folder ze zdalnego do lokalnego za pomocą scp?

Jak skopiować folder ze zdalnego na lokalny host używając scp?

Używam ssh do logowania się na moim serwerze.
Następnie chciałbym skopiować folder zdalny foo do lokalnego /home/user/Desktop.

Jak to osiągnąć?

Author: dagelf, 2012-07-03

11 answers

scp -r [email protected]:/path/to/foo /home/user/Desktop/

Nie włączając końcówki ' / ' na końcu foo, skopiujesz sam katalog (wraz z zawartością), a nie tylko zawartość katalogu.

From man scp (Zobacz Online manual )

-R rekurencyjnie kopiuje całe katalogi

 5240
Author: Gryphius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-15 01:21:14

Aby wykorzystać pełną moc scp należy przejść przez kolejne kroki:

  1. autoryzacja klucza publicznego
  2. Tworzenie aliasów ssh

Wtedy, na przykład, jeśli masz to ~/.ssh / config :

Host test
    User testuser
    HostName test-site.com
    Port 22022

Host prod
    User produser
    HostName production-site.com
    Port 22022

Uratujesz się przed wpisaniem hasła i uprościsz SCP składnię w następujący sposób:

scp -r prod:/path/foo /home/user/Desktop   # copy to local
scp -r prod:/path/foo test:/tmp            # copy from remote prod to remote test

Więcej, będziesz mógł używać zdalnego ścieżka-zakończenie:

scp test:/var/log/  # press tab twice
Display all 151 possibilities? (y or n)

Update:

Aby włączyć zdalne uzupełnianie bash, musisz mieć powłokę bash na obu hostach <source> i <target> oraz poprawnie działające uzupełnianie bash. Aby uzyskać więcej informacji, zobacz podobne pytania:

Jak włączyć autouzupełnianie zdalnych ścieżek podczas korzystania z scp?
uzupełnianie zakładki SCP filename

 322
Author: Alexander Yancharuk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-27 18:53:36

To copy all from Local Location to Remote Location (Upload)

scp -r /path/from/destination username@hostname:/path/to/destination

To copy all from Remote Location to Local Location (Download)

scp -r username@hostname:/path/from/destination /path/to/destination

Custom Port where xxxx is custom port number

 scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination

Kopiowanie bieżącego katalogu z zdalnego do lokalnego

scp -r username@hostname:/path/from/file .

Pomoc:

  1. -r rekurencyjnie Kopiuj wszystkie katalogi i pliki
  2. Zawsze używaj pełnego Lokalizacja z /, uzyskaj pełną lokalizację przez pwd
  3. scp zastąpi wszystkie istniejące pliki
  4. hostname będzie nazwą hosta lub adresem IP
  5. jeśli potrzebny jest port Niestandardowy (oprócz portu 22) użyj -P portnumber
  6. . (dot) - oznacza bieżący katalog roboczy, więc pobieraj/Kopiuj z serwera i wklej tylko tutaj.

Uwaga: czasami Port Niestandardowy nie będzie działał z powodu tego, że port nie jest dozwolony w zaporze, więc upewnij się, że port Niestandardowy jest dozwolone w zaporze dla połączeń przychodzących i wychodzących

 237
Author: Shiv Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 09:25:58

Zawsze używam:

scp -r username@IP:/path/to/server/source/folder/  .

. (kropka) : oznacza current folder. więc skopiuj z serwera i wklej tylko tutaj.

IP : może być adresem IP jak 125.55.41.311 lub może być hostem jak ns1.mysite.com.

 48
Author: Manish Shrivastava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-16 06:35:23

Lepiej najpierw skompresować katalog na zdalnym serwerze:

tar czfP backup.tar.gz /path/to/catalog

Po Drugie, pobierz ze zdalnego:

scp [email protected]:/path/to/backup.tar.gz .

Na końcu rozpakuj pliki:

tar -xzvf backup.tar.gz
 37
Author: justi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-08 19:20:36

A jeśli masz cholernie dużo plików do pobrania ze zdalnej lokalizacji i jeśli nie dbasz o bezpieczeństwo, spróbuj zmienić domyślne szyfrowanie scp (Triple-DES) na coś w rodzaju "blowfish".

Drastycznie skróci to czas kopiowania plików.

scp -c blowfish -r [email protected]:/path/to/foo /home/user/Desktop/
 22
Author: dimuthu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-17 06:02:32

Typowy scenariusz,

scp -r -P port username@ip:/path-to-folder  .

Wyjaśnione za pomocą próbki,

scp -r -P 27000 [email protected]:/tmp/hotel_dump .

Gdzie,

port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
 21
Author: Arun G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-25 07:15:53

Przejdź do plików na pasku narzędzi unity

Tutaj wpisz opis obrazka

Naciśnij Ctrl + l i napisz [email protected]

192.168.1.103 jest hostem, który chcesz połączyć.

Oto jeden przykład

Tutaj wpisz opis obrazka

 20
Author: Ronald Coarite,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-09 21:05:10

Pytanie brzmiało, jak skopiować folder ze zdalnego do lokalnego za pomocą polecenia scp.

$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir

Ale tutaj jest lepszy sposób, aby to zrobić z sftp - SSH File Transfer Protocol (również Secure File Transfer Protocol, lub SFTP) to protokół sieciowy, który zapewnia dostęp do plików, transfer plików i zarządzanie plikami przez dowolny niezawodny strumień danych.(wikipedia).

$ sftp user_remote@remote_ip

sftp> cd /path/to/remoteDir

sftp> get -r remoteDir

Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00

Aby uzyskać pomoc o sftp Wystarczy wpisać help lub ?.

 12
Author: Fulvio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-15 05:47:35

W przypadku, gdy napotkasz "zbyt wiele błędów uwierzytelniania", podaj dokładny klucz SSH, który dodałeś do serwera SSH severs:

scp -r -i /path/to/local/key [email protected]:/path/to/folder /your/local/target/dir
 12
Author: kaiser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-26 21:54:58

Nie wiem dlaczego, ale musiałem użyć folderu lokalnego przed dyrektywą source server . to make it work

scp -r . [email protected]:/usr/share/nginx/www/example.org/
 5
Author: Salem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-30 13:40:23