качать разные части файла с 2 компов

elenangel

качаю образ livedvd-x86-amd64-32ul-10.1.iso с зеркала яндекса при помощи wget.
дома он обещает уложиться в двое суток.
могу параллельно запустить закачку на работе, но качать сначала глупо, хочется качать ту часть файла, которая дома еще не качалась.
пока пришло в голову создать забитый нулями файл нужного размера, скажем к вечеру у меня дома скачается 800 метров, и включить на него докачку wget. потом дома отрезать лишние нули и лишнее докачанное и склеить 2 куска. но это выглядит как-то криво.
как это лучше сделать?
и дома и на работе есть win xp и linux, но на работе предпочтительно использовать xp.
версия wget под винду тоже имеется.

AlexV769

IPv6?

elenangel

не понял честно говоря вопроса.

AlexV769

Ты в ГЗ? Официалка есть?

elenangel

я не в ГЗ и не в москве

katrin2201

Если качаешь с http - то можно попробовать в реквест хидерах прописать byte range.

elenangel

пробую так
 wget --header='bytes=845534883-' -b -c -t 0 http://mirror.yandex.ru/gentoo-distfiles/releases/x86/10.1/livedvd-x86-amd64-32ul-10.1.iso -O livedvd-x86-amd64-32ul-10.1.iso.lastfragment 

оно говорит
  wget: --header: Invalid header `'bytes=845534883-''.

elenangel

протупил, Range: забыл поставить
 
 wget --header='Range: bytes=845534883-' -b -c -t 0 http://mirror.yandex.ru/gentoo-distfiles/releases/x86/10.1/livedvd-x86-amd64-32ul-10.1.iso -O livedvd-x86-amd64-32ul-10.1.iso.lastfragment 

вот эта команда берет нужный диапазон и даже продолжает докачку того куска, который я получил поставив с утра качаться в файл с 800М нулей а потом отрезав нули.
P.S. остается надеятся что я нигде в диапазонах не ошибся на пару байт и после сборки кусков md5 образа окажется правильный =)

elenangel

походу оно все же не то качает. короче буду докачивать к нулям, а потом резать и вообще разбираться.
в логах увидел:

--2010-01-14 14:50:08-- http://bytes=845534883-'/
Resolving bytes=845534883-'... failed: Unknown host.
wget: unable to resolve host address `bytes=845534883-''
--2010-01-14 14:50:08-- http://mirror.yandex.ru/gentoo-distfiles/releases/x86/10.1/livedvd-x86-amd64-32ul-10.1.iso
Resolving mirror.yandex.ru... 93.158.155.193, 95.108.197.240, 95.108.197.241, ...
Connecting to mirror.yandex.ru|93.158.155.193|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 2716860416 (2.5G 2566281904 (2.4G) remaining [application/x-iso9660-image]
Saving to: `livedvd-x86-amd64-32ul-10.1.iso.lastfragment'

[ skipping 147000K ]
147000K . 5% 53.6M 56m35s
147050K .......... .......... .......... .......... .......... 5% 32.0K 21h29m
147100K .......... .......... .......... .......... .......... 5% 28.7K 22h50m
147150K .......... .......... .......... .......... .......... 5% 30.6K 22h48m

так что похоже оно начинает качать сначала и кусок считает начальным

katrin2201

Судя по логу оно этот хидер как-то странно попыталось использовать. Не так, как ожидалось.
Резолвить его зачем-то стало... Бред какой-то...

serega1604

честно говоря у меня под виндой так и не получилось заставить wget качать нужный диапазон из файла (под linux не пытался никогда зато curl с этим справился легко и непринужденно.

elenangel

ап теме.
оба куска скачал, теперь буду собирать. придумал довольно извращенный способ, но нужна помощь человека, у которого есть этот файл: http://mirror.yandex.ru/gentoo-distfiles/releases/x86/10.1/l... или кому не трудно его скачать.
моя идея - взять .torrent файл для образа и на одном компе поставить на закачку 2 куска в 2 разных клиентах. добавить пир с локальным IP и оно само соберет образ+проверит контрольные суммы (что важно).
может кто-нибудь сделать .torrent для этого образа и положить сюда или мне на мыло (в профиле есть)?

pitrik2

а
что?
использовать торренты чтобы слить 2 файла в один?
да это ж жесть какая-то
в линуксе есть команда split
ею разбиваешь свои два файла пополам: X Y --> X1 X2 Y1 Y2
а потом склеиваешь нужные половинки cat-ом: cat Y2 >> X1

tokuchu

Склеить можно так:
(cat file1; tail -c +700000000 < file2) > file_out

elenangel

склеил файлы по отметке 1ккк байт, так как дома скачалось чуть больше гига, md5 сошлось, всем спасибо за помощь.
клеил так:
yacht /mnt/win_d/gentoo/link $ (head -c 1000000000 livedvd-x86-amd64-32ul-10.1.iso.first.part;tail -c +1000000001 livedvd-x86-amd64-32ul-10.1.iso.845534883)>livedvd-x86-amd64-32ul-10.1.iso
yacht /mnt/win_d/gentoo/link $ ls -l
итого 6360193
-rwxrwxrwx 1 root root 2716860416 2010-01-16 00:32 livedvd-x86-amd64-32ul-10.1.iso
-rwxrwxrwx 1 root root 2716860416 2010-01-16 00:17 livedvd-x86-amd64-32ul-10.1.iso.845534883
-rwxrwxrwx 1 root root 1079112860 2010-01-16 00:25 livedvd-x86-amd64-32ul-10.1.iso.first.part

nas1234

ты извращенец.
Оставить комментарий
Имя или ник:
Комментарий: