Büyük bir indirmeyi birden fazla bilgisayara nasıl dağıtabilirim?


38

Büyük bir dosya indirmem gerekiyor (1GB). Ayrıca Linux çalıştıran birden fazla bilgisayara da erişebiliyorum, ancak her biri yönetici politikası tarafından 50kB / s indirme hızıyla sınırlı.

Bu dosyayı indirmeyi birkaç bilgisayara nasıl dağıtabilirim ve tüm bölümler indirildikten sonra bunları birleştirebilirim, böylece daha hızlı alabilirim?


7
Evde indirin ve usb thumbdrive ile gizlice?
WernerCD

2
Üniversitedeyken eski güneş b & w istasyonu ile böyle şeyler hatırlıyorum. Tüm içeriği kaydetmek için yeterli alana sahip olup olmadığınızı kontrol edin, laboratuardaki tüm bilgisayarları (full tmp) bloke ettikten sonra arkadaşımdan atıldı.
Kartoch

İndirme kısıtlaması yoksa, diğer uç dosyayı ne kadar hızlı gönderebilir? LAN üzerindeki bilgisayarlar arasında transfer kısıtlamaları var mı?
Paz

@SunWKim No. Orada belirli bir kısıtlama yoktur.
Meysam

Yanıtlar:


60

Ortak protokoller HTTP, FTP ve SFTP destek aralığı isteklerini destekler , böylece bir dosyanın bir kısmını talep edebilirsiniz. Bunun sunucu desteği gerektirdiğini de unutmayın, bu nedenle pratikte çalışmayabilir veya çalışmayabilir.

Aralığı belirtmek için curlve -rveya --rangeseçeneğini kullanabilir ve sonunda catdosyaları bir araya getirebilirsiniz . Örnek:

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

Ve sonunda münferit parçaları topladığınızda onları birleştirirsiniz:

cat distro* > distro.iso

Bu --headseçenekle birlikte boyutu da dahil olmak üzere dosya hakkında daha fazla bilgi edinebilirsiniz :

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

Son öbekleri açık bir aralık ile alabilirsiniz:

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

Daha fazla seçenek ve açıklama için kıvrılma man sayfasını okuyun .

Birden fazla sunucudaki indirmeleri izlemeyi ve çalıştırmayı kolaylaştırmak için ssh ve tmux'tan daha fazla yararlanabilirsiniz.


15
Not: dikkatli olun, cat distro* > ...dosyaları kullanırken *kabuğunuzun genişletilmiş haliyle dosyaların sıralamasını kontrol edin, şöyle sıralayabilirsiniz: distro1.iso distro10.iso distro11.iso ...ve böylece yanlış sırayla birleştiriyor.
Sebastian,

8
@ Sebastian'ın notu için bir düzeltme olacaktır:cat distro{1..10}.iso
nonchip

1
Bu çözüm kabuğa özgüdür ve taşınabilir değildir. cat $(seq -fdist%g.iso 1 10)daha öngörülebilir olmalı, ama yine de başarısız csh. $(…)Backtics ile değiştirmek , çoğu kabuklarda işe yarıyor gibi görünüyor.
Marco

3
@Marco, seqtaşınabilir bir komut da değil. Kullanabilirsiniz distro001.iso, distro002.iso...distroy010.iso
Stéphane Chazelas

Yönetici politikası, transfer bağlantısı başına 50 kB / s veya bilgisayarda izin verilen toplam bant genişliğidir. Eski ise cevap, farklı iş istasyonlarına giriş yapmak yerine aynı bilgisayarda kullanılabilir.
Paz

0

Saniyede 50 kilobayt hızla 1 gigabaytlık bir dosyayı yüklemek için yaklaşık 5.5 saat sürüyordu.

Birden fazla bilgisayarı koordine etme çabası kısmi almak için zaman kazandırabilir gibi görünüyor.

Bittorrent'e bakabilir ve akran değişimi yoluyla transferler ile birlikte web tohumlamadan yararlanabilirsiniz. Her müşteri yerel alan ağında (LAN) parçaları alabilir ve tamamlanan parçaları paylaşabilir. Her bilgisayarda aynı 1GB dosyayla bitirdiniz, ancak parçaların birleştirilmesi sizin için otomatik.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.