Ускоряем загрузку больших файлов из интернета.

The answer you entered to the math problem is incorrect.

Задача - скачать ISO образ линукса за короткое время. Самое простое это:
wget ftp://ftp.rediris.es/sites/releases.ubuntu.com/releases/feisty/ubuntu-7.04-desktop-i386.iso
Но на зеркалах стоят лимиты на ширину канала для каждого подключения, а так как нам важно время, мы будем использовать несколько зеркал одноврменно.

В первую очередь устанавливаем программу CURL:
sudo  apt-get install curl

Далее, ISO образ имеет объём 700Мб. Мысленно режем его на несколько частей по 100Мб и выбираем 4 зеркала с этим образом.

создаём файл ubuntu.sh:
vim ubuntu.sh

в него вписываем:


#!/bin/sh

url1=http://ubuntu.intergenia.de/releases/feisty/ubuntu-7.04-desktop-i386.iso
url2=http://ubuntu.virginmedia.com/releases/7.04/ubuntu-7.04-desktop-i386.iso
url3=http://es.releases.ubuntu.com/7.04/ubuntu-7.04-desktop-i386.iso
url4=http://ftp-mirror.internap.com/pub/ubuntu-releases/7.04/ubuntu-7.04-desktop-i386.iso

curl --range 0-199999999 -o ubuntu-iso.part1 $url1 &
curl --range 200000000-399999999 -o ubuntu-iso.part2 $url2 &
curl --range 400000000-599999999 -o ubuntu-iso.part3 $url3 &
curl --range 600000000- -o ubuntu-iso.part4 $url4 &

url1, url2, url3, url4 - переменные содержащие в себе ссылки на iso образ на разных зеркалах. 

аргумен --range указывает с какого по какой байт надо скачать. --range 600000000- указывает что надо скачать начиная с 600000000 и до конца.
ubuntu-iso.part1 и т.д. - названия файлов под которыми будут сохранены скачанные части iso образа


делаем скрипт исполняемым:

$chmod u+x ubuntu.sh

и запускаем его:

$./ubuntu.sh

в конечном итоге получаем 4 файла:

ubuntu-iso.part1 ubuntu-iso.part2 ubuntu-iso.part3 ubuntu-iso.part4


склеиваем их в один iso образ:

cat ubuntu-iso.part? > ubuntu-7.04-desktop-i386.iso

Получили готовый образ системы за относительно короткое время.






Комментарии

Изображение пользователя admin.

оппа! эту статью опубликовали на opennet.ru! :)
p.s.:ладно не на лоре - там съели бы :)

Не понял смысла. aget и axel уже отменили? Они качают в несколько потоков. Я даже когда-то развлекался настраивая aget как качалку для emerge....

Изображение пользователя admin.

MooSE, вот не знал я об этих скриптах честно:)

Ну axel и aget вообще-то не скрипты. Это полноценные качалки. aget даже позиционируется как совместимый с wget в плане параметров команднйо строки (на самом деле пока ещё не совсем так - многое не реализовано). Но важно что оба качают в несколько потоков:)

Изображение пользователя admin.

с разных зеркал?

admin wrote:
с разных зеркал?
Вот так вроде как оно не умеет. Но оно и не нужно. Скорость обычно режется на поток а не на адрес с которого тянут:)

Изображение пользователя admin.

MooSE, дело как раз в том что на зеркалах тоже скорость режется
Когда Ubuntu Feisty вышла - в этот день все зеркала под завязку были...
у меня 100Mb но бывает что ISO DVD пол дня качает:)
P.S.: а я уж хотел последовать примеру "аффтар больше не пеши, аффтар выпей йаду!" :)))

admin wrote:
MooSE, дело как раз в том что на зеркалах тоже скорость режется Когда Ubuntu Feisty вышла - в этот день все зеркала под завязку были... у меня 100Mb но бывает что ISO DVD пол дня качает:) P.S.: а я уж хотел последовать примеру "аффтар больше не пеши, аффтар выпей йаду!" :)))

Ну вобщем ладно. С убунтой у меня отношения не складываются. Я гентушнег и не знаю как на убунтовых зеркалах дела:)

Отправить комментарий

Пример: 1+1, ответ: 2
Содержание этого поля является приватным и не предназначено к показу.

Ñòàðí/A>