Як поширити велике завантаження на декілька комп'ютерів?


38

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

Як я поширюю завантаження цього файлу на декількох комп'ютерах і об'єдную їх після завантаження всіх сегментів, щоб я міг швидше отримати його?


7
Завантажте його в домашніх умовах, і вставте його в за допомогою usb thumbdrive?
— WernerCD

2
Я пам’ятаю подібні речі зі старою станцією, яка перебуває на сонці, коли я була в університеті. Просто перевірте, чи є у вас достатньо місця для збереження всього вмісту, одного мого друга вислали після блокування всіх комп'ютерів лабораторії (повний tmp).
— Картох

Якщо немає обмеження на завантаження, наскільки швидко може інший кінець надіслати файл? Чи є обмеження на передачу даних між комп’ютерами в локальній мережі?
— Нд

@SunWKim Ні. Тут немає конкретних обмежень.
— Мейсам

Відповіді:


60

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

Ви можете скористатися curlі опцією -rабо, --rangeщоб вказати діапазон і в кінцевому підсумку просто catпідключити файли разом. Приклад:

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 для полегшення запуску та відстеження завантажень на декількох серверах.


15
Примітка: обережно, використовуючи cat distro* > ...перевірити сортування файлів, оскільки *розширені вашою оболонкою можуть сортувати її так: distro1.iso distro10.iso distro11.iso ...і таким чином об'єднати в неправильному порядку.
— Себастьян

8
виправлення для записки @ Себастьяна буде:cat distro{1..10}.iso
— nonchip

1
Це рішення є специфічним для оболонки і не є портативним. cat $(seq -fdist%g.iso 1 10)має бути більш передбачуваним, але він не вдається csh, хоча. Заміна $(…)на задній панелі, здається, працює в більшості корпусів.
— Марко

3
@Marco, seqтакож не є портативною командою. Ви можете використовувати distro001.iso, distro002.iso...distroy010.iso
— Стефан Шазелас

Чи політика адміністратора, 50 кБ / с на передачу, або загальна пропускна здатність на комп'ютері. Якщо це перша, відповідь можна використовувати на одному комп’ютері, а не входити в різні робочі станції.
— Нд

0

На завантаження 1-гігабайтного файлу зі швидкістю 50 кілобайт в секунду пішло б близько 5,5 годин.

Здається, зусилля по координації декількох комп'ютерів для отримання партій можуть заощадити деякий час.

Ви можете переглядати bittorrent та використовувати веб-посів разом із передачами через обмін одноранцями. Кожен клієнт може отримати деталі та поділитися готовими фрагментами у локальній мережі (LAN). У вас виходить один і той же файл на 1 ГБ на кожному комп’ютері, але злиття частин для вас автоматизоване.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.