How can I limit the bandwidth of apt-mirror?

I need to make a once off mirror of all the Ubuntu apt repository (for the record it's because I'm sending it to Kenya (see here and here).

I did it before and used apt-mirror, and that does exactly what I want. However now I want to do it slowly, so I want to limit the bandwidth it uses to download. Is there any easy way to do it? Any magic apt configuration setting?


Solution 1:

After I looked at the source code for apt-mirror, I discovered that apt-mirror has inbuilt abilities to limit the bandwith rate.

Just put:

set limit_rate 50k

In your mirror.list file and it will pass that into wget. However that limit is per thread. So if you have 10 threads, this will be 50k * 10 = 500k. This feature is not documentated at all.

Solution 2:

Dan Carley are right about perl wrapper. But smarter way - edit ~/.wgetrc (user specific config) or /etc/wgetrc (system-wide config) and add option

limit-rate = 50k # or your limit rate

Solution 3:

Since apt-mirror is just a Perl wrapper for wget. You could edit the source code to utilise the wget flag --limit-rate which takes a download speed expressed in bytes, kilobytes or megabytes.

Depending upon your understanding of Perl, you could either do this the right way, by adding a new configuration option and ideally submitting a patch back to the author. Or you can just hardcode the value that you need for the moment.