tra-loi-cau-hoi-phat-trien-web.com

Làm cách nào để sao chép một thư mục từ xa sang cục bộ bằng scp?

Làm cách nào để sao chép thư mục từ xa sang Máy chủ cục bộ bằng cách sử dụng scp?

Tôi sử dụng ssh để đăng nhập vào máy chủ của mình.
[.__.] Sau đó, tôi muốn sao chép thư mục từ xa foo sang cục bộ /home/user/Desktop.

Làm thế nào để đạt được điều này?

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

Từ man scp (Xem hướng dẫn trực tuyến )

-r Sao chép toàn bộ thư mục

4338
Gryphius

Để sử dụng toàn bộ sức mạnh của scp bạn cần trải qua các bước tiếp theo:

  1. Ủy quyền khóa công khai
  2. Tạo bí danh ssh

Sau đó, ví dụ nếu bạn có cái này ~/.ssh/config :

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

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

bạn sẽ tự lưu từ mục nhập mật khẩu và đơn giản hóa scp cú pháp như thế này:

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

Hơn nữa, bạn sẽ có thể sử dụng hoàn thành đường dẫn từ xa:

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

Cập nhật:

Để cho phép hoàn thành bash từ xa, bạn cần phải có bash-Shell trên cả hai máy chủ <source><target> và hoạt động hoàn tất bash. Để biết thêm thông tin xem các câu hỏi liên quan:

Làm cách nào để bật tự động hoàn thành cho các đường dẫn từ xa khi sử dụng scp?
[.__.] Hoàn thành tab tên tệp SCP

276
Alexander Yancharuk

Để sao chép tất cả từ Vị trí địa phương đến Vị trí từ xa (Tải lên)

scp -r /path/from/destination [email protected]:/path/to/destination

Để sao chép tất cả từ Vị trí từ xa đến Vị trí địa phương (Tải xuống)

scp -r [email protected]:/path/from/destination /path/to/destination

Cổng tùy chỉnh trong đó xxxx cổng tùy chỉnh số

 scp -r -P xxxx [email protected]:/path/from/destination /path/to/destination

Sao chép vào thư mục hiện tại từ Từ xa đến Địa phương

scp -r [email protected]:/path/from/file .

Cứu giúp:

  1. -r Sao chép đệ quy tất cả các thư mục và tệp
  2. Luôn sử dụng vị trí đầy đủ từ /, Nhận vị trí đầy đủ bằng pwd
  3. scp sẽ thay thế tất cả các tệp hiện có
  4. hostname sẽ là tên máy chủ hoặc địa chỉ IP
  5. nếu cần cổng tùy chỉnh (ngoài cổng 22), hãy sử dụng -P portnumber
  6. . (dấu chấm) - nó có nghĩa là thư mục làm việc hiện tại, vì vậy chỉ cần tải xuống/sao chép từ máy chủ và dán vào đây.

Lưu ý: Đôi khi cổng tùy chỉnh sẽ không hoạt động do cổng không được phép trong tường lửa, vì vậy hãy đảm bảo rằng cổng tùy chỉnh được phép trong tường lửa cho kết nối đến và đi

175
Shiv Singh

Những gì tôi luôn luôn sử dụng là:

scp -r [email protected]:/path/to/server/source/folder/  .

. (dấu chấm) : có nghĩa là current folder. vì vậy chỉ sao chép từ máy chủ và dán ở đây.

IP: có thể là một địa chỉ IP như 125.55.41.311 hoặc nó có thể là Host như ns1.mysite.com.

46
Manish Shrivastava

Tốt hơn để nén danh mục đầu tiên trên máy chủ từ xa:

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

Thứ hai, tải xuống từ xa:

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

Cuối cùng, giải nén các tập tin:

tar -xzvf backup.tar.gz
28
justi

Và nếu bạn có một tệp tải xuống từ địa điểm từ xa và nếu bạn không quan tâm nhiều đến bảo mật, hãy thử thay đổi mã hóa mặc định scp (Triple-DES) thành một cái gì đó như 'blowfish'.

Điều này sẽ giảm thời gian sao chép tập tin quyết liệt.

scp -c blowfish -r [email protected]:/path/to/foo /home/user/Desktop/
21
dimuthu

Chuyển đến Tệp trên thanh công cụ thống nhất của bạn

 enter image description here

Nhấn Ctrl + l và viết vào đâ[email protected]

192.168.1.103 là Máy chủ mà bạn muốn kết nối.

Đây là một ví dụ

 enter image description here

19
Ronald

Kịch bản điển hình,

scp -r -P port [email protected]:/path-to-folder  .

giải thích với một mẫu,

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

ở đâu,

port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
17
Arun G

Trong trường hợp bạn gặp phải "Quá nhiều lỗi xác thực" , hãy chỉ định khóa SSH chính xác mà bạn đã thêm vào máy chủ ssh của bạn:

scp -r -i /path/to/local/key [email protected]:/path/to/folder /your/local/target/dir
11
kaiser

Câu hỏi là làm thế nào để sao chép một thư mục từ xa sang cục bộ bằng lệnh scp.

$ scp -r [email protected]:/path/remoteDir /path/localDir

Nhưng đây là cách tốt hơn để làm điều đó với sftp - Giao thức truyền tệp SSH (cũng là giao thức truyền tệp an toàn hoặc SFTP) là một giao thức mạng cung cấp quyền truy cập tệp, truyền tệp và quản lý tệp qua bất kỳ luồng dữ liệu đáng tin cậy nào. (Wikipedia) .

$ sftp [email protected]_ip

sftp> cd /path/to/remoteDir

sftp> get -r remoteDir

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

Để được trợ giúp về lệnh sftp, chỉ cần nhập help hoặc ?.

10
Fulvio

Tôi không biết tại sao nhưng tôi đã phải sử dụng thư mục cục bộ trước khi chỉ thị máy chủ nguồn. Để làm cho nó hoạt động

scp -r . [email protected]:/usr/share/nginx/www/example.org/
5
Salem