in reply to Background downloading service

I know that this isn't exactly what you asked for, but iptables in linux supports bandwidth throttling (I believe that it's called "traffic shaping"). This could allow you to stop one user taking over all of the bandwidth for other users.

For http downloads, you could also try setting up a proxy server using apache (or squid - but I am less familiar with it than apache). The mod_bandwidth module for apache will allow you to control how much bandwidth people on different machines can use. This would also allow commonly accessed files to be cached on the proxy server.

I don't know if any of the perl tools will allow you to control the bandwidth that they will use - although if you're planning to write a system to schedule downloads for outside of office hours, you may find that you just don't care, as no-one else will be using the link at this time anyway!

Replies are listed 'Best First'.
Re^2: Background downloading service
by kevin_i_orourke (Friar) on Aug 29, 2006 at 12:37 UTC

    The iptables and proxy options would be good, except our router is a PC running the MikroTik RouterOS.

    It has a built-in proxy and bandwidth shaping, both of which we're using. The problem isn't so much one user taking over all the bandwidth as taking over enough of it to annoy everyone else.

    Only downloading outside office hours is troublesome because we're in Nigeria and there's often no electricity outside office hours.

    I'm starting to think that the system could just start downloading when the router reports that the link is quiet, stop if it gets busier and then resume later. I'd include an overall bandwidth limit by time of day as well.

    I was sort of hoping somebody had already invented this wheel...