Автор Тема: Использование curl с ключами -C- и -r  (Прочитано 2276 раз)

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Решил скачать altlinux-5.0.2-school-master-i586-ru-install-dvd5.iso

Есть возможность скачивать с 3 мест:
1 - 128 Кбит/с
2 - 256 Кбит/с
3 - 128 Кбит/с

Захотелось побыстрей, т.е. по частям.

Использую AltLinux 5.0.1 Мастер
Пробуем (для эксперимента):

[igor@igor Documents]$ curl -r 0-2000000 ftp://mirror.yandex.ru/altlinux/p5/iso/school/5.0.2/altlinux-5.0.2-school-master-i586-ru-install-dvd5.iso -o /mnt/disk/doc2/502_1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 23 1953k   23  455k    0     0  28885      0  0:01:09  0:00:16  0:00:53 32151^C
[igor@igor Documents]$ curl -C- -r 0-2000000 ftp://mirror.yandex.ru/altlinux/p5/iso/school/5.0.2/altlinux-5.0.2-school-master-i586-ru-install-dvd5.iso -o /mnt/disk/doc2/502_1
** Resuming transfer from byte position 475136
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 3844M    0 2285k    0     0  32752      0 34:11:10  0:01:11 34:09:59 26806^C

При попытке докачать показывает размер 3844М и продолжает качать свыше намеченных -r 0-2000000

А если так:
[igor@igor Documents]$ curl -C -r 0-2000000 ftp://mirror.yandex.ru/altlinux/p5/iso/school/5.0.2/altlinux-5.0.2-school-master-i586-ru-install-dvd5.iso -o /mnt/disk/doc2/502_1
то начинает лезть непонятно что:
LT Linux Team2011011413201800201101141320180000000000000000002011011413201800                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       DOCUMENTATION   #INDEXHTML.ALT0 LTLINUXDOC'METADAT(SYSLINUX&_DISK0BASE  1RPMS.MAI%ALT_DOCS
IMAGES$
DOCUMENTATIONDOC#INDEXHTML.ALT0 X&_DISK0BASE    1RPMS.MAI%ALT_DOCS
IMAGES$
ICONS  IMG"
 .disk&ALTLinux!Metadatdocs"syslinux(RPMS.mai'basealt-docsdocumentationindexhtm%alt0

mages
     img
icons
 .disk&ALTLinux!Metadatdocs"syslinux(RPMS.mai'basealt-docsdocumentationindexhtm%alt0

mages
     img
���kk�oAmTFomTFo
ALTINST.;1RR�NM
o              altinstPX$$��$TFo
zo/

Ну и т.д.

Собственно, вопрос не совсем по Школьным дистрибутивам, но думаю коллеги отреагируют быстрей.
« Последнее редактирование: 02.02.2011 22:21:12 от igorigor76 »

Оффлайн bormant

  • Завсегдатай
  • *
  • Сообщений: 358
Re: Использование curl с ключами -C- и -r
« Ответ #1 : 02.02.2011 18:46:25 »
Смотрите размер (4Гб), загружаете 3 куска параллельно (в соотношении 1:2:1 согласно скоростей), потом склеиваете:
$ export URL=http://mirror.yandex.ru/altlinux/p5/iso/school/5.0.2/altlinux-5.0.2-school-master-i586-ru-install-dvd5.iso
$ curl --head $URL | grep Length
$ curl -r 0-1000000000 $URL -o a502.part1         # в месте 1
$ curl -r 1000000001-3000000000 $URL -o a502.part2   # в месте 2
$ curl -r 3000000001- $URL -o a502.part3          # в месте 3
$ cat a502.part{1..3} > altlinux-5.0.2-school-master-i586-ru-install-dvd5.iso
$ md5sum altlinux-5.0.2-school-master-i586-ru-install-dvd5.iso
после сверки суммы "запчасти" можно удалить: $ rm -f a502.part{1..3}

Если сумма не сошлась, восстанавливаете недостающее при помощи rsync или клиента torrent.
« Последнее редактирование: 03.02.2011 00:30:55 от bormant »

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Re: Использование curl с ключами -C- и -r
« Ответ #2 : 02.02.2011 22:16:11 »
Спасибо за отклик, но мне необходима возможность докачки (компьютеры включены только в рабочее время).
А это значит использование ключа -С или -С-.
Без -r докачка работает, а вот с ним... Ну в общем в своем первом посте я вроде подробно описал.

Да, если делить то логично будет 0-1000000000, 1000000001-3000000000, 3000000001-
Это же размер в байтах.