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

Это не часть rm, но часть Вашей оболочки. * шарик, который Ваша оболочка разворачивает и передает rm в форме аргументов (rm никогда не видит литерал *, если шарик ничему не соответствовал, в этом случае литерал * передается). Стандарт * шарики не расширяются для включения имен файлов, начинающихся с точки, которая включает . и ... Например:

$ tee foo bar baz .foo .bar .baz < /dev/null
$ echo *
bar baz foo
$ echo .*
. .. .bar .baz .foo
39
04.10.2014, 02:28
2 ответа

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

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

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 page для получения дополнительных опций и пояснений.

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

60
27.01.2020, 19:35

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

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

Вы можете посмотреть на bittorrent и использовать web seeding вместе с передачей через одноранговый обмен. Каждый клиент может получать части и обмениваться готовыми частями в локальной сети (LAN). В итоге вы получаете один и тот же файл размером 1 Гб на каждом компьютере, но объединение частей происходит автоматически.

0
27.01.2020, 19:35

Теги

Похожие вопросы