Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Specifically, I am looking to rate-limit an scp or sftp session (or other arbitrary network call) in the call itself.

For example, let's say I want to copy 100MB to one server, and 1GB to another. I'd like to be able to run both of these at the same time, but maintain a QoS for "normal" computer usage - somewhat similar to how you can rate-limit bittorrent.

Is there a way to do this without touching the networking hardware?

I'm envisioning something akin to:

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


scp -rate 40kbps file user@host:/path/to/file
share|improve this question
up vote 11 down vote accepted

Yes, there's an application that works exactly like your 'magic-qos-tool', called "trickle".

     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.
share|improve this answer
thanks, @davr - one wrapper tool vs learning all the options to each is a great improvement :) – warren Apr 8 '10 at 14:51

scp has -l, and rsync has --bwlimit.

share|improve this answer
that was not an option in the man page I checked earlier... looks like it depends on the platform, perhaps? – warren Apr 2 '10 at 20:52
Quite possibly. I have OpenSSH 5.3p1 here. – Ignacio Vazquez-Abrams Apr 2 '10 at 20:55
XenServer 6 has scp with -l option – Brian Boatright May 28 '12 at 21:06

Rsync makes this easy on you, it has an option to do this: --bwlimit=KBPS

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .