Có thể giới hạn tốc độ chuyển scp / sftp / rsync / etc từ dòng lệnh không? tức là, QoS thủ công trên một lệnh đơn?


10

Cụ thể, tôi đang tìm cách giới hạn tỷ lệ một scphoặc một sftpphiên (hoặc cuộc gọi mạng tùy ý khác) trong chính cuộc gọi .

Ví dụ: giả sử tôi muốn sao chép 100MB sang một máy chủ và 1GB sang máy chủ khác. Tôi muốn có thể chạy cả hai thứ này cùng một lúc, nhưng vẫn duy trì QoS cho việc sử dụng máy tính "bình thường" - hơi giống với cách bạn có thể đánh giá bittorrent giới hạn.

Có cách nào để làm điều này mà không cần chạm vào phần cứng mạng?

Tôi đang hình dung một cái gì đó giống như:

magic-qos-tool 'scp file user@host:/path/to/file'

Hoặc là..

scp -rate 40kbps file user@host:/path/to/file

Câu trả lời:


12

Vâng, có một ứng dụng hoạt động chính xác như 'công cụ ma thuật' của bạn, được gọi là " nhỏ giọt ".

EXAMPLES
     trickle -u 10 -d 20 ncftp

     Launch ncftp(1) limiting its upload capacity to 10 KB/s, and download ca-
     pacity at 20 KB/s.

1
cảm ơn, @davr - một công cụ bao bọc và tìm hiểu tất cả các tùy chọn cho từng tùy chọn là một cải tiến tuyệt vời :)
warren

16

scp có -l, và rsync có --bwlimit.


đó không phải là một tùy chọn trong mantrang tôi đã kiểm tra trước đó ... có vẻ như nó phụ thuộc vào nền tảng, có lẽ?
warren

Hoàn toàn có thể. Tôi có OpenSSH 5.3p1 ở đây.
Ignacio Vazquez-Abrams

XenServer 6 có scp với tùy chọn -l
Brian Boatright

Cờ -l trong scp không hoạt động trên Solaris 11. Có lựa chọn nào khác hoặc thay thế không?
Nhà giả kim

7

Rsync giúp bạn dễ dàng thực hiện điều này, nó có một tùy chọn để làm điều này: --bwlimit=KBPS


2

sftp có cờ tiết lưu, kể từ Debian 7 và Ubuntu 12.04 trong các bản phân phối đó:

-l limit

    Giới hạn băng thông được sử dụng, được chỉ định bằng Kbit / s.

(Tất nhiên đó là một trường hợp thấp hơn L.)

Nguồn: stfp(1)

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.