Làm cách nào để sao chép từ 1 máy tính sang máy tính khác bằng các lệnh shell Linux?


3

Tôi muốn sao chép một tập tin ( home/remote_computer_user/Desktop/test1.txt) từ máy tính văn phòng từ xa của tôi (một URL cố định + cổng mở) vào máy tính ở nhà của tôi ( home/home_computer_user/Downloads/).

Làm thế nào tôi có thể làm điều này với các lệnh shell trong Linux?

Suy nghĩ hiện tại của tôi:

  1. ssh <user>@<computer1address> -p <port> - cho tôi một cái vỏ trên máy tính từ xa
  2. (Tôi nghĩ rằng tôi nên sử dụng scp, nhưng tôi không biết chính xác như thế nào trong trường hợp của tôi)

Các lệnh chính xác tôi nên sử dụng là gì?



Nếu bạn làm điều này thường xuyên, bạn có thể muốn xem xét lệnh rsync.
TMN

Bạn dường như đang thiếu một vài /s trong đường dẫn của mình (như trong " /home/remote_computer_user").
grawity

rsync không phải là giải pháp ở đây. rsync sẽ đồng bộ hóa 2 thư mục, nhưng anh ta muốn sao chép tệp một cách an toàn, vì vậy scp. Sử dụng rsync trong trường hợp này sẽ chỉ gây phiền toái và có thể khá khó xử khi chỉ sao chép tệp. Nếu đó là để sao lưu thì có, rsync là cách thích hợp nhất. Nếu chỉ để khôi phục dữ liệu, scp sẽ thực hiện thủ thuật.
Anarko_Bizounours

Ngoài ra tôi nghĩ anh ta sẽ không bao giờ có thể làm điều đó cho đến khi anh ta tạo NAT trên bộ định tuyến internet tại nhà và có bản ghi dns. (như dyndns)
Anarko_Bizounours

Câu trả lời:


4

Nó phải là một cái gì đó như:

scp -P <port> user@comp1:Desktop/test1.txt ~/Downloads/

Chạy cái này trên PC ở nhà của bạn.

Hy vọng điều này sẽ giúp bạn.


1

scphoạt động, nhưng bạn cũng có thể sử dụng rsync:

rsync -e 'ssh -p <port>' <user>@<computer1address>:Desktop/test1.txt ~/Downloads/

Hầu hết thời gian rsynclà một sự thay thế thả-in cho scp, tức là với hầu hết các scplệnh bạn chỉ có thể thay thế scpvới rsyncvà nó sẽ làm việc cùng một cách. Lý do duy nhất không đúng với trường hợp của bạn là rsynckhông có -ptùy chọn chỉ định cổng (tốt, đúng vậy, nhưng nó chỉ áp dụng khi rsync kết nối qua giao thức gốc của chính nó, không qua ssh). Vì vậy, bạn cần bảo nó sử dụng lệnh ssh thay thế bao gồm cổng.

Nếu máy chủ ssh của bạn sử dụng cổng tiêu chuẩn hoặc nếu bạn có cổng được cấu hình ~/.ssh/config(trong cả hai trường hợp, điều này có nghĩa là bạn không cần sử dụng -ptùy chọn khi kết nối với ssh), thì bạn chỉ cần chạy

rsync <user>@<computer1address>:Desktop/test1.txt ~/Downloads/

Nói chung, tôi thích rsyncđến scpvì nó có nhiều tùy chọn hơn, và bởi vì nếu bạn đang chuyển một số lượng lớn các tập tin, rsync có ý nghĩa để bỏ qua những người mà đã tồn tại trên hệ thống đích, cắt giảm số lượng dữ liệu có được chuyển giao.


0

Nếu bạn có FTP hoặc SCP, hãy sử dụng nó. Nó thoải mái hơn. Nếu bạn bị giới hạn ở ssh (như tôi trên nhiều hệ thống nhúng)

Tải lên tập tin duy nhất:

 ssh login@remotehost -p remoteport "cat >filename" <filename

Tải xuống tập tin duy nhất:

 ssh login@remotehost -p remoteport "cat filename" >filename

Tải lên một thư mục

 tar -cf - dirname | ssh login@remotehost -p remoteport "tar -xf -"

Tải xuống một thư mục

 ssh login@remotehost -p remoteport "tar -cf - dirname" | tar -xf - 

Thay vì dirnamebạn có thể chỉ định nhiều tệp, thư mục hoặc một mẫu để khớp. Xem ra cho những con đường tuyệt đối


0

Một thay thế cho scp có thể quen thuộc hơn và phù hợp hơn cho việc chuyển nhiều tệp là sftp. Nó đi kèm với tất cả các phiên bản chính của ssh mà tôi đã gặp.

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.