Intereting Posts
Контроль вентилятора Linux? как запустить задание cron с конкретным пользователем? Использовать общий ресурс CIFS, установленный в fstab для apache svn Разрешения по пути вместо битов режима файла Отключите SELinux в apache, чтобы остановить предупреждение. анализировать HTML в Bash (когда grep просто недостаточно) Как я могу разобрать xml-файл с URL-адреса http без загрузки файла и распечатать нужную строку? Может ли сервер OpenSSH перенаправлять входящий трафик на другой сервер? Запросить пароль sudo, а не дать ошибку доступа Звук загадочно умер на рабочем столе Debian – как его вернуть? postfix: ошибка службы имени Почему в выводе netstat не отображается мой IP-адрес клиента? Как я могу вызвать событие в сценарии оболочки при удалении USB-устройства? Извлечь строки из текстового файла на основе параметра в одну строку Не может быть дано указание свернуть блоки строк

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

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

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

Общие протоколы 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 на каждом компьютере, но слияние деталей автоматизировано для вас.