Как распределить большую загрузку через несколько компьютеров?

Мне нужно загрузить большой файл (1 ГБ). У меня также есть доступ к нескольким компьютерам под управлением Linux, но каждый из них ограничивается скоростью загрузки 50 кБ / с политикой администратора.

Как распределить загрузку этого файла на нескольких компьютерах и объединить их после загрузки всех сегментов, чтобы я мог быстрее его получать?

2 Solutions collect form web for “Как распределить большую загрузку через несколько компьютеров?”

Общие протоколы HTTP, FTP и SFTP поддерживают запросы диапазона , поэтому вы можете запросить часть файла. Обратите внимание, что для этого также требуется поддержка сервера, поэтому она может работать или не работать на практике.

Вы можете использовать параметр curl и -r или --range для указания диапазона и, в конечном итоге, просто соединить файлы вместе. Пример:

 curl -r 0-104857600 -o distro1.iso 'http://files.cdn/distro.iso' curl -r 104857601-209715200 -o distro2.iso 'http://files.cdn/distro.iso' […] 

И в конце концов, когда вы собрали отдельные части, вы их объединяете:

 cat distro* > distro.iso 

Вы можете получить дополнительную информацию о файле, включая его размер с опцией --head :

 curl --head 'http://files.cdn/distro.iso' 

Вы можете получить последний фрагмент с открытым диапазоном:

 curl -r 604887601- -o distro9.iso 'http://files.cdn/distro.iso' 

Прочтите страницу curl man для получения дополнительных опций и объяснений.

Вы можете использовать ssh и tmux для упрощения работы и отслеживания загрузки на нескольких серверах.

Потребуется около 5,5 часов для загрузки 1-гигабайтного файла со скоростью 50 килобайт в секунду.

Похоже, что усилия по координации нескольких компьютеров для получения частичных данных могут сэкономить некоторое время.

Вы можете посмотреть на bittorrent и использовать посев для веб-сайтов вместе с переводами через обмен peer. Каждый клиент может получать куски и делиться полученными частями в локальной сети (LAN). Вы получаете один и тот же файл 1gb на каждом компьютере, но слияние деталей автоматизировано для вас.

  • Существует ли простой способ ограничения числа дочерних процессов, выполняемых параллельно?
  • сделать петлю параллельной
  • трубопровод с недетерминированным выходом
  • Удаление номеров из имен файлов
  • Как распараллелить цикл for при scp-файлах?
  • Параллелизация цикла for с очень большим количеством итераций
  • обрабатывать файлы в каталоге по мере их появления
  • Как bash лечит ">> ()"
  • Несколько приложений, которые записывают один и тот же файл в общем разделе NFS
  • Многокомпонентный инструмент в духе более «параллельной» модели?
  • Как я могу запускать две команды параллельно и завершать их, если ОДИН из них завершается с кодом выхода 0?
  • Interesting Posts

    Как переименовать раздел UDF?

    shell для возврата имени рабочего стола kde

    Как работает шрифт в Arch Linux?

    Как получить имя NetBIOS от IP-адреса

    Используйте команду find для выполнения ряда команд

    Отобразить имя сети в xmobar

    Как восстановить после удаления только клавиши LUKS?

    Как разрешить пользователям без полномочий root управлять службой systemd с помощью экземпляров?

    Не удается обмениваться папками между Mac OS X на базе VMWare 7.1.1 и гостевой системой Fedora 21

    Как запустить файл .phar с PHP CLI из распакованного RPM?

    Как скопировать файлы из одного каталога в другой, чтобы копировать только новые файлы?

    Как узнать причину процесса, который будет спать, и разбудить его?

    Когда я могу использовать временную IFS для разделения поля?

    Что я должен делать с Python 2.7.9, не ищущим сертификатов SSL в нужном месте на FreeBSD?

    Как использовать grep для исходного кода без комментариев

    Linux и Unix - лучшая ОС в мире.