Làm cách nào để sao chép tệp từ máy chủ từ xa sang máy cục bộ?


238

Trong vỏ thiết bị đầu cuối của tôi, tôi đã vào một máy chủ từ xa và tôi cdđến thư mục tôi muốn.

Bây giờ trong thư mục này, có một tệp được gọi là tabletôi muốn sao chép vào máy cục bộ của mình /home/me/Desktop.

Tôi có thể làm cái này như thế nào?

Tôi đã thử scp table /home/me/Desktopnhưng nó đã báo lỗi về việc không có tập tin hoặc thư mục như vậy.

Có ai biết cách để làm điều này không?


Nếu bạn thấy mình sao chép bằng scp thường xuyên, bạn có thể gắn thư mục từ xa vào trình duyệt tệp của mình và kéo và thả. Trên máy chủ Ubuntu 15 của tôi, nó nằm dưới thanh menu "Đi"> "Nhập vị trí"> debian@10.42.4.66:/home/debian. Ngoài ra, người ta có thể sử dụng sshfsđể gắn hệ thống tập tin của máy từ xa trên máy chủ. Nhưng thiết lập đó có liên quan nhiều hơn một chút.
ConvexMartian

Hãy rsyncthử. Thật tuyệt vời cho cả bản sao địa phương và từ xa, mang lại cho bạn tiến trình sao chép, v.v. Một ví dụ
sakisk

Câu trả lời:


381

Cú pháp cho scplà:

Nếu bạn đang ở trên máy tính mà bạn muốn gửi tệp đến một máy tính từ xa:

scp /file/to/send username@remote:/where/to/put

Ở đây remotecó thể là một FQDN hoặc địa chỉ IP.

Mặt khác, nếu bạn đang ở trên máy tính muốn nhận tệp từ máy tính từ xa:

scp username@remote:/file/to/send /where/to/put

scp cũng có thể gửi tệp giữa hai máy chủ từ xa:

scp username@remote_1:/file/to/send username@remote_2:/where/to/put

Vì vậy, cú pháp cơ bản là:

scp username@source:/location/to/file username@destination:/where/to/put

Bạn có thể đọc man scpđể có thêm ý tưởng về điều này.


4
Nếu tôi muốn sao chép nhiều tập tin thì sao? Tôi đã thêm một khoảng trắng và chỉ sử dụng một /file/to/sendCảm ơn cho câu trả lời tuyệt vời của bạn!
camdixon

6
scp -rsẽ sao chép đệ quy.
Henry

Những gì tôi muốn sao chép các tệp từ mạng vào VM của mình ... làm thế nào để đạt được điều tương tự bằng cách sử dụng scp
Sushivam

2
@heemayl +1 cho câu trả lời hay. Nghĩ thêm rằng trong trường hợp đó là kết nối an toàn (yêu cầu xác thực), bạn có thể sử dụng thông tin sau (để sao chép tệp từ cục bộ sang từ xa): scp -i mykey.pem somefile.txt root@remotehost.ip.address : / some / thư mục / trong / từ xa
Guy Avraham

1
Sử dụng scp -P 123để chỉ định cổng tùy chỉnh
aexl

14

Bạn có thể sử dụng rsyncnhư là một thay thế. Nó chủ yếu để đồng bộ hóa các tập tin .. nhưng bạn cũng có thể sử dụng nó cho mục đích này.

rsync -avzh --stats --progress remoteuser@remoteip  localpath 

để thêm tùy chọn ssh:

rsync -e "ssh -P $port_value" remoteuser@remoteip  localpath

--progress--statsrất hữu ích để hiển thị thời gian thực của chuyển.



8
scp username@ipaddress:pathtofile localsystempath

scp sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .

Nếu bạn sử dụng với cổng:

scp -Pportnumber username@ipaddress:pathtofile localsystempath 

scp -P2233 sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .

Điều này sẽ sao chép các tập tin vào cùng một thư mục từ xa.
Max Yudin

3

Nếu bạn hoàn toàn tin tưởng tất cả mọi người trong mạng và bạn có thể kết nối trực tiếp một cổng của máy đích, bạn có thể sử dụng netcat : nc.

Giả sử địa chỉ IP của máy đích là 192.168.1.123

Trên đường chạy đích:

nc -l -p 7777 0.0.0.0 | tar zxvf - -C dest_dir

Bạn có thể chọn một cổng khác và cũng có thể liên kết với một IP khác trong các giao diện của bạn, 0.0.0.0 chỉ bắt được trên tất cả các giao diện.

Trên nguồn chạy:

tar zxcf - filename | nc 192.168.1.123 7777

IMHO, đây là cách nhanh nhất có thể để gửi tệp từ máy tính này sang máy tính khác bằng mạng kỹ thuật số.

Các đối số và tùy chọn dòng lệnh có thể thay đổi một chút giữa các phiên bản khác nhau nctar, nhưng chắc chắn nó sẽ hoạt động với các bản phân phối Linux gần đây.


2

Trên Linux, để sao chép một thư mục và nội dung của nó từ thư mục người dùng (gốc trong ví dụ này), vào một thư mục trong thư mục người dùng cục bộ, tôi chạy lệnh này trên máy cục bộ:

scp -r root@178.62,54.83: ~ / thư mụcinremoteuserdir ~ / thư mụcinlocaluserdir

Lưu ý ~ / mà tôi dường như thường quên ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.