Chuyển tập tin qua SSH


9

Tôi muốn sử dụng chuyển tập tin qua SSH trên một số tập lệnh. Tôi đã đọc nó có thể tar trên ssh. Tôi nên bắt đầu đọc ở đâu?


Tại sao bạn mang tar lên?
Zoredache

1
tar là cách nhanh nhất để sao chép các tập tin qua SSH. scp và rsync có rất nhiều giao thức khi sao chép nhiều tệp nhỏ.
Justin

@Justin, tất nhiên giả định với tar là bạn sẽ có một kết nối đáng tin cậy. Nếu hiệu suất thô không thành vấn đề thì thường tốt hơn là gắn bó với các giải pháp phổ biến và đơn giản hơn như scp / rsync.
Zoredache

1
Huh? tar trên ssh không tệ hơn scp hoặc rsync. Khía cạnh duy nhất trong đó rsync tốt hơn là nó cho phép bạn tiếp tục. Nếu kết nối không đáng tin cậy, có lẽ vẫn đáng để thử tar trên ssh trước, sau đó kết thúc việc chuyển bằng rsync.
Justin

@Justin, điều đó sẽ tạo ra một kịch bản khá phức tạp. Có lẽ chúng ta nên bắt đầu với một cái gì đó cơ bản hơn một chút.
John Gardeniers

Câu trả lời:


23

Để thực hiện chuyển tập tin qua ssh, bạn có thể

  • sử dụng scp
    • scp -r /srcdir/ user@remotehost:/destdir/
  • sử dụng rsync trên ssh (xem tham số -e)
    • rsync -e ssh -a /srcdir/ user@remotehost:/destdir/
  • sử dụng một số công cụ chuyển dữ liệu qua stdin / out ( tar , cpio , v.v.)
    • cd /sourcedir; tar -c . | ssh username@remotehost bash 'cd /dstdir; tar -x
  • Gắn hệ thống tập tin qua sshfs (nếu cầu chì được hỗ trợ trên hệ thống của bạn)

Tôi thường xuyên sử dụng cả ba; cái nào tôi sử dụng phụ thuộc vào hoàn cảnh.
Revierpost

3

O'Reilly có một cuốn sách với tất cả - SSH, Secure Shell: The Definitive Guide - nếu bạn Google cho nó, có rất nhiều tài liệu tham khảo, địa điểm để mua nó và xem trực tuyến.


Phải yêu nó khi bạn bị hạ cấp và không có bình luận nào để cho bạn biết lý do tại sao. Ông hỏi nơi bắt đầu đọc - và điều này có sẵn trực tuyến và từ một hiệu sách. Nó là một tài liệu tham khảo tuyệt vời cho ssh.
Kevin K

Tôi nghĩ điều này là sai quá. Tại sao bạn lại bỏ phiếu (hai lần) cho rằng bạn thực sự đã trả lời câu hỏi và câu trả lời được chấp nhận (đã bỏ phiếu 15 lần cho đến nay) là cách chung để sao chép tệp qua ssh mà không cần tham khảo nơi bắt đầu đọc. Tôi sẽ bỏ phiếu cho bạn, chỉ để cố gắng khắc phục tình hình. Đừng để họ làm bạn thất vọng.
Richard Holloway


0

Đối với tar trên ssh, bạn có thể sử dụng thực tế ssh chuyển tiếp stdin và stdout. Vì vậy bạn có thể làm

ssh server 'tar czf - /some/dir/' > tarfile.tar.gz

và có bản sao lưu trên máy cục bộ.

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.