Bạn có thể scp, sftp, hoặc rsync, một đường ống?


9

Tôi muốn tar và gửi thư mục ~ 700GiB đến một ổ đĩa từ xa mà tôi không kiểm soát. Tôi không có không gian ổ cứng cục bộ để tạo tarball và sau đó sao chép nó. Điều khiển từ xa cũng được bảo vệ bởi rssh - bạn không thể ssh vào máy chủ và chạy các lệnh tùy ý.

Tuy nhiên, tôi có thể sử dụng scp, rsync hoặc sftp. Vì vậy, câu hỏi của tôi là cụ thể cho một trong 3 lệnh đó. Có cách nào để scp, rsync hoặc sftp sao chép một đường ống mà không thể chạy các lệnh tùy ý ở phía bên kia không?


Cập nhật: Các giải pháp dưới đây sẽ không làm việc cho chúng tôi tại bộ lưu trữ thứ cấp của chúng tôi. Chúng tôi bị hạn chế để chạy các lệnh nhất định. Chúng tôi không thể ssh - các lệnh sử dụng ssh được lọc / kiểm soát với rssh.

Cuối cùng, chúng tôi đã hủy tất cả các tài khoản phụ của mình và đã trả rất nhiều tiền để tăng gấp đôi kích thước lưu trữ chính của chúng tôi (máy chủ chính của chúng tôi có thể thực hiện việc này mà không cần di chuyển, điều này thật tuyệt). Sau đó chúng tôi đã tạo một kho lưu trữ tạm thời và gửi nó như bình thường. (Điều mà chúng tôi không thể làm với số lượng lưu trữ ban đầu của chúng tôi.)

Trong tương lai, chúng tôi sẽ sử dụng một VPS thứ cấp với dung lượng lưu trữ lớn hơn dành riêng, để điều này không xảy ra nữa. Rõ ràng là những gì tôi đã yêu cầu là không thể.


Tôi đã trả lời điều này tại trang web chị em - nói tóm lại, lftpcó khả năng thực hiện điều này qua giao thức SFTP.
Bob

Câu trả lời:


4

Nó không chính xác là "ống", nhưng về cơ bản bạn có thể yêu scpcầu sao chép FD cụ thể (có thể là ống) từ máy chủ của bạn sang máy chủ khác. Lệnh bash đơn giản như thế này:

( scpkhông hoạt động vì nó cần một kích thước trước):

scp <(tar cz files to compress) host:/path/to/new.file

nhưng nó có thể hoạt động với thuần túy ssh:

tar cz files to compress | ssh host "cat > /path/to/new.file"

2
Bạn đã thử điều này? Nó không hoạt động đối với tôi (OpenSSH scp 6.6). Các giao thức scp đòi hỏi phải gửi trước filesize các nội dung, mà là không phù hợp với việc gửi một dòng một chiều dài chưa biết.
Kenster

@Kenster Vâng, bạn nói đúng. scpsẽ không làm việc. Nhưng nó nên làm việc với tinh khiết ssh. Xem câu trả lời chỉnh sửa. Tôi đã không thử điều đó, nhưng về mặt khái niệm thì nó nên thực hiện công việc.
Jakuje

@Jakuje nhưng điểm quan trọng của câu hỏi này là rsshngăn chặn việc gọi cat, nó phải trải qua một trong ba lệnh được đề cập.
b0fh

0

Hành vi RSYNC trên SFTP

Thậm chí không cần nén bất cứ thứ gì, bạn có thể sao chép cấu trúc thư mục sang phía bên kia bằng cách sử dụng LFTP (tên gây hiểu nhầm) và mirrorhệ thống con của LFTP. LFTP hỗ trợ SFTP và hệ thống con nhân bản hỗ trợ gần như tất cả các khả năng của rsync. Nó cũng có thể phân chia việc chuyển thành nhiều kết nối như bạn muốn, để làm cho nó đi nhanh hơn. Tôi làm điều này tất cả các thời gian.

Thí dụ

Ngoài ra hãy xem bài đăng này: /server/135618/is-it-possible-to-use-rsync-over-sftp-without-an-ssh-shell

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.