wget + многопоточность
Модератор: /dev/random
-
- Сообщения: 454
- Статус: Добрый Демон
wget + многопоточность
Как субж реализовать?
Нужно именно консольная качалка.
Нужно именно консольная качалка.
Если жизнь твоя порвется, тебе новую сошьют.
-
- Бывший модератор
- Сообщения: 1571
- ОС: Cygwin
Re: wget + многопоточность
насколько мне известно, никак. А самое главное, я не могу понять, зачем она нужна, это многопоточность? Убедишь :devil_2:?
P.S. Если модераторы считают, что это призыв к флейму, пусть удаляют. Но я действительно считаю что многопоточная скачка не нужна. (Do it in a unix way...)
P.S. Если модераторы считают, что это призыв к флейму, пусть удаляют. Но я действительно считаю что многопоточная скачка не нужна. (Do it in a unix way...)
-
- Бывший модератор
- Сообщения: 1005
- Статус: добрый хиппи
Re: wget + многопоточность
axel
Многопоточное закачивание может существенно (в 2 и более раз) ускорить закачку.
Хмм... А в чем в данном случае будет заключаться юникс-вэй - подождать подольше?
Многопоточное закачивание может существенно (в 2 и более раз) ускорить закачку.
Но я действительно считаю что многопоточная скачка не нужна. (Do it in a unix way...)
Хмм... А в чем в данном случае будет заключаться юникс-вэй - подождать подольше?

Ушёл навсегда. В личку не заглядываю.
-
- Бывший модератор
- Сообщения: 1571
- ОС: Cygwin
Re: wget + многопоточность
(StraNNicK @ Вторник, 02 Ноября 2004, 16:37) писал(а):axel
Читаем...
... тем самым поступая нечестно с владельцами этого фтп. Не просто же так они его ограничили.For example, some FTP sites limit the speed of each connection, therefore opening more than one connection at a time multiplies the allowable bandwidth.
Be forewarned that some FTP operators don't like it when you do this.
You may either specify a list of mirrors to use or tell the program to search for mirrors.
А вот это уже действительно интересно, хотя я предпочитаю найти быстрейшее зеркало и скачивать целиком оттуда.
(StraNNicK @ Вторник, 02 Ноября 2004, 16:37) писал(а):Хмм... А в чем в данном случае будет заключаться юникс-вэй - подождать подольше?
Скажем так - fair play (см выше про ограничения).
P. S. Да, привычка - вторая натура. Я очень мало имел дела с инетом, который оплачивается по-временно, в основном по траффику. Но я не думаю, что закачка в несколько потоков может помочь при модемной связи...
-
- Бывший модератор
- Сообщения: 677
Re: wget + многопоточность
(demongloom @ Вторник, 02 Ноября 2004, 17:21) писал(а):Как субж реализовать?
Нужно именно консольная качалка.
Смотря что понимать под многопоточностью...
Конструкция вида:
Код: Выделить всё
wget url1&wget url2&.....&wget urln
Позволяет начать закачку сразу всех файлов одновременно -- каждый в своем потоке :thumbsup:
В реальности все не так, как на самом деле...
JabberID: zmeyk@jabber.ru
JabberID: zmeyk@jabber.ru
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: wget + многопоточность
Подтверждаю практикой: реального прироста не видел ни разу. Вернее, теоретической возможности прироста: всё качал в один поток, всё со скоростью 110% от того, что по идее должен уметь выдавать мой 33600-модем в принципе.(Bolverk @ Вторник, 02 Ноября 2004, 17:51) писал(а):Но я не думаю, что закачка в несколько потоков может помочь при модемной связи...
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 1005
- Статус: добрый хиппи
Re: wget + многопоточность
Я на выделенке. Прирост есть. Даже когда качаешь с одного зеркала (если оно не совсем тормозное) - почему - затрудняюсь ответить.
Далее - найти быстрейшее зеркало - задача для компа - нафига мне этим заморачиваться? Всё, что может быть автоматизировано - должно быть автоматизировано. ИМХО, в этом и есть юникс-вэй.
Не моя проблема.
Мне надо закачать и закачать быстро.
Если люди хотят ограничивать закачку одним потоком - они это сделают...
Далее - найти быстрейшее зеркало - задача для компа - нафига мне этим заморачиваться? Всё, что может быть автоматизировано - должно быть автоматизировано. ИМХО, в этом и есть юникс-вэй.
For example, some FTP sites limit the speed of each connection, therefore opening more than one connection at a time multiplies the allowable bandwidth.
... тем самым поступая нечестно с владельцами этого фтп. Не просто же так они его ограничили.
Не моя проблема.

Если люди хотят ограничивать закачку одним потоком - они это сделают...

Ушёл навсегда. В личку не заглядываю.
-
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: wget + многопоточность
вот буржуй.... 28.8 (: никакого ускорения от нескольких потоков... абсолютно...110% от того, что по идее должен уметь выдавать мой 33600-модем в принципе
слава роботам!
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: wget + многопоточность
Нисебе чего. Я думал, это я отстал от жизни с 33.6(elide @ Среда, 03 Ноября 2004, 14:20) писал(а):вот буржуй.... 28.8 (:

t.t добавил в 03.11.2004 16:09
А чего у тебя смайл не на том боку? Картинки не любишь?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 1019
- Статус: Экс-металлюга
Re: wget + многопоточность
Многопоточный? Консольный? Хм, интересно... Линуксоиды мы, али нет?!!
Вот вам wget многопоточный
Запуск: script $URL $THREADS
Конечно, сделано топорно, поддерживает только http, но работает
Кстати, прироста скорости я не обнаружил.
Вот вам wget многопоточный

Код: Выделить всё
#!/bin/bash
do_thread()
{
local tn=$1 url=$2 from=$3 sz=$4
local outf="$(basename "$url")#$tn"
touch "$outf.lock"
head -c $from /dev/zero > "$outf"
echo "Start thread #$tn (from:$from size:$sz)"
(
wget -c -o "wget#$tn.log" -O "$outf" "$url" &
local pid=$!
while [ $(du -b "$outf" | awk '{print$1}') -lt $((from+$sz)) ]; do sleep 1; done
ps | grep "$pid " | grep " wget$" &>/dev/null && kill $pid
)
head -c $((from+$sz)) "$outf" | tail -c $sz > "${outf}_"
mv "${outf}_" "$outf"
echo "Done thread #$tn"
rm -f "$outf.lock"
return 0
}
go()
{
rm -f *.lock
local url="$1" parts=$2
local size=$(wget --spider -S "$url" 2>&1 | awk '/Content-Length:/{print$3}')
[ -z "$size" ] && { echo "Error on fetch size of file"; return 0; }
local psize=$((size/$parts))
local cs=0
for i in `seq 1 $((parts-1))`; do
do_thread $i "$url" $cs $psize &
cs=$((cs+$psize))
done
do_thread $parts "$url" $cs $((size-$cs)) &
while ls *.lock &>/dev/null; do sleep 1; done
local f="$(basename "$url")"
echo -n > "$f"
for i in `seq 1 $parts`; do cat "$f#$i" >> "$f"; rm -f "$f#$i"; done
echo "All done"
}
go "$1" $2
Запуск: script $URL $THREADS
Конечно, сделано топорно, поддерживает только http, но работает

Кстати, прироста скорости я не обнаружил.
ArchLinux / IceWM
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: wget + многопоточность
Вот это я понимаю. :thumbsup: Я в "Do it in a unix way!" ссылку на этот пост добавил.(madskull @ Среда, 03 Ноября 2004, 16:33) писал(а):Многопоточный? Консольный? Хм, интересно... Линуксоиды мы, али нет?!!
Вот вам wget многопоточный
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 454
- Статус: Добрый Демон
Re: wget + многопоточность
Под многопоточностью подразумеваю скачивание одного файла по кускам.
Впрочем и от нескольких файлов сразу тоже не откажусь.
Прирост есть. К примеру на 1 коннект к серверу ограничение 30 кб/сек, а я могу скачивать 250 кб/сек. Если я могу подключиться еще раз и сделать 5 коннктов, то я могу получить скорость 150 кб/сек, так как каждая часть будет скачиваться по 30 кб/сек, но в сумме будет 150.
Впрочем и от нескольких файлов сразу тоже не откажусь.
Прирост есть. К примеру на 1 коннект к серверу ограничение 30 кб/сек, а я могу скачивать 250 кб/сек. Если я могу подключиться еще раз и сделать 5 коннктов, то я могу получить скорость 150 кб/сек, так как каждая часть будет скачиваться по 30 кб/сек, но в сумме будет 150.
Если жизнь твоя порвется, тебе новую сошьют.
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: wget + многопоточность
А скрипт madskull'а это разве не оно и есть?(demongloom @ Среда, 03 Ноября 2004, 18:39) писал(а):Под многопоточностью подразумеваю скачивание одного файла по кускам.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 1005
- Статус: добрый хиппи
Re: wget + многопоточность
Почти. Скрипт madskull'а - образец того, что при желании всё можно сделать.
Поскольку в shell-scripting'е я не силён - пользую помянутый axel, который делает несколько больше...
Поскольку в shell-scripting'е я не силён - пользую помянутый axel, который делает несколько больше...

Ушёл навсегда. В личку не заглядываю.
-
- Сообщения: 454
- Статус: Добрый Демон
Re: wget + многопоточность
Скрипт конечно хорошо, но охота что то типа программы...
Если жизнь твоя порвется, тебе новую сошьют.
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: wget + многопоточность
(demongloom @ Четверг, 04 Ноября 2004, 1:22) писал(а):Скрипт конечно хорошо, но охота что то типа программы...
?(StraNNicK @ Среда, 03 Ноября 2004, 20:48) писал(а):Поскольку в shell-scripting'е я не силён - пользую помянутый axel, который делает несколько больше...
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 32
- ОС: FC, RHEL, CentOS
Re: wget + многопоточность
А гугл уже мертв ? И свежее мясо протухло ?
http://www.enderunix.org/aget/
Правда в слаке 9.1 он чего-то не скомпилился, хотя я не сильно то и настаивал
About:
Aget is a multi-threaded download accelerator. It supports HTTP downloads and can be run from the console.
http://www.enderunix.org/aget/
Правда в слаке 9.1 он чего-то не скомпилился, хотя я не сильно то и настаивал

-
- Бывший модератор
- Сообщения: 1005
- Статус: добрый хиппи
Re: wget + многопоточность
C интересом посмотрел.
Неее. axel лучше. Он и по ftp качает, и по зеркалам сам ищет...
Хотя тенденция радует.
Как я уже где-то говорил, есть еще вполне даже отечественная разработка Downloader 4 X, который может работать и из консоли (только вот я так и не разобрался - как)...
Неее. axel лучше. Он и по ftp качает, и по зеркалам сам ищет...
Хотя тенденция радует.
Как я уже где-то говорил, есть еще вполне даже отечественная разработка Downloader 4 X, который может работать и из консоли (только вот я так и не разобрался - как)...

Ушёл навсегда. В личку не заглядываю.
-
- Сообщения: 313
- ОС: Linux
Re: wget + многопоточность
ProZilla
http://prozilla.genesys.ro/
ProZilla is a download accelerator for Linux which gives you a 200% to 300% improvement in your file downloading speeds.
Its features:
Supports FTP & HTTP including redirection (ProZilla & ProzGUI).
Resume Supported (ProZilla & ProzGUI).
Complete acceleration: The file will be downloaded as fast as possible as your bandwidth allows if not otherwise specified (ProZilla & ProzGUI).
Unlike certain other download accelerators available for Linux, this really works.
The number of connections that prozilla uses can be specified (ProZilla & ProzGUI).
FTPsearch support now permits fetching Mirror locations and pinging them and selecting the fastest server is automatically done (ProZilla & ProzGUI).
Downloading the same file in parts from several servers at once to increase speed (ProzGUI).
http://prozilla.genesys.ro/
-
- Сообщения: 1019
- Статус: Экс-металлюга
Re: wget + многопоточность
(@leX @ Четверг, 04 Ноября 2004, 17:39) писал(а):ProZilla
Downloading the same file in parts from several servers at once to increase speed (ProzGUI).
http://prozilla.genesys.ro/
То есть, один файл в несколько потоков только в GUI?!!
Так весь сыр бор именно из-за консольного...
ArchLinux / IceWM
-
- Бывший модератор
- Сообщения: 1005
- Статус: добрый хиппи
Re: wget + многопоточность
В консоли тянет. Проверил. Симпатично.
Только вот поиск не работает. Вылетает в кору...
Только вот поиск не работает. Вылетает в кору...

Ушёл навсегда. В личку не заглядываю.
-
- Сообщения: 454
- Статус: Добрый Демон
Re: wget + многопоточность
И свой гуи консольный имеет. Если бы его отрубить.
Если жизнь твоя порвется, тебе новую сошьют.
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: wget + многопоточность
Поправочка: раз консольный, то не гуй, а туй(demongloom @ Четверг, 04 Ноября 2004, 21:34) писал(а):И свой гуи консольный имеет.

¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 1005
- Статус: добрый хиппи
Re: wget + многопоточность
Поскольку поиск не работает - то нафиг.
axel. Если кто на пальцах расскажет как пользовать D4X в консоли (и шоб поиск зеркал работал) - буду ооочень благода...
axel. Если кто на пальцах расскажет как пользовать D4X в консоли (и шоб поиск зеркал работал) - буду ооочень благода...

Ушёл навсегда. В личку не заглядываю.
-
- Сообщения: 374
- ОС: debian
Re: wget + многопоточность
наткнулся на скрипт для многопоточного скачивания через wget.
заинтересовался, попробовал - не работает (не определяет размер файла) вот эта строка
оказалось у меня wget не нумерует вывод
то есть не
wget --spider -S http://docs.linux.cz/programming/other/ALP...programming.pdf
--14:56:03-- http://docs.linux.cz/programming/other/ALP...programming.pdf
=> `advanced-linux-programming.pdf'
Resolving docs.linux.cz... done.
Connecting to docs.linux.cz[160.217.161.13]:80... connected.
HTTP request sent, awaiting response...
1 HTTP/1.0 200 OK
2 Date: Thu, 20 Sep 2007 10:51:18 GMT
3 Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.9-1 mod_ssl/2.8.9 OpenSSL/0.9.6c
4 Last-Modified: Wed, 20 Feb 2002 11:26:30 GMT
5 ETag: "41cc66-3afd9c-3c7387e6"
6 Accept-Ranges: bytes
7 Content-Length: 3866012
8 Content-Type: application/pdf
9 Age: 3450
10 X-Cache: HIT from www.it-internet.ru
11 Connection: close
200 OK
а вот так
wget --spider -S http://docs.linux.cz/programming/other/ALP...programming.pdf
--14:58:54-- http://docs.linux.cz/programming/other/ALP...programming.pdf
=> `advanced-linux-programming.pdf'
Распознаётся docs.linux.cz... 160.217.161.13
Устанавливается соединение с docs.linux.cz|160.217.161.13|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ...
HTTP/1.0 200 OK
Date: Thu, 20 Sep 2007 10:51:18 GMT
Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.9-1 mod_ssl/2.8.9 OpenSSL/0.9.6c
Last-Modified: Wed, 20 Feb 2002 11:26:30 GMT
ETag: "41cc66-3afd9c-3c7387e6"
Accept-Ranges: bytes
Content-Length: 3866012
Content-Type: application/pdf
Age: 3548
X-Cache: HIT from www.it-internet.ru
Connection: close
Длина: 3,866,012 (3.7M) [application/pdf]
200 OK
соответственно изменяем строку
local size=$(wget --spider -S "$url" 2>&1 | awk '/Content-Length:/{print$2}') - и все работает
зы. классный скриптик
заинтересовался, попробовал - не работает (не определяет размер файла) вот эта строка
local size=$(wget --spider -S "$url" 2>&1 | awk '/Content-Length:/{print$3}')
оказалось у меня wget не нумерует вывод
то есть не
wget --spider -S http://docs.linux.cz/programming/other/ALP...programming.pdf
--14:56:03-- http://docs.linux.cz/programming/other/ALP...programming.pdf
=> `advanced-linux-programming.pdf'
Resolving docs.linux.cz... done.
Connecting to docs.linux.cz[160.217.161.13]:80... connected.
HTTP request sent, awaiting response...
1 HTTP/1.0 200 OK
2 Date: Thu, 20 Sep 2007 10:51:18 GMT
3 Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.9-1 mod_ssl/2.8.9 OpenSSL/0.9.6c
4 Last-Modified: Wed, 20 Feb 2002 11:26:30 GMT
5 ETag: "41cc66-3afd9c-3c7387e6"
6 Accept-Ranges: bytes
7 Content-Length: 3866012
8 Content-Type: application/pdf
9 Age: 3450
10 X-Cache: HIT from www.it-internet.ru
11 Connection: close
200 OK
а вот так
wget --spider -S http://docs.linux.cz/programming/other/ALP...programming.pdf
--14:58:54-- http://docs.linux.cz/programming/other/ALP...programming.pdf
=> `advanced-linux-programming.pdf'
Распознаётся docs.linux.cz... 160.217.161.13
Устанавливается соединение с docs.linux.cz|160.217.161.13|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ...
HTTP/1.0 200 OK
Date: Thu, 20 Sep 2007 10:51:18 GMT
Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.9-1 mod_ssl/2.8.9 OpenSSL/0.9.6c
Last-Modified: Wed, 20 Feb 2002 11:26:30 GMT
ETag: "41cc66-3afd9c-3c7387e6"
Accept-Ranges: bytes
Content-Length: 3866012
Content-Type: application/pdf
Age: 3548
X-Cache: HIT from www.it-internet.ru
Connection: close
Длина: 3,866,012 (3.7M) [application/pdf]
200 OK
соответственно изменяем строку
local size=$(wget --spider -S "$url" 2>&1 | awk '/Content-Length:/{print$2}') - и все работает
зы. классный скриптик
Ну вот, еще один день прошел, а мы все еще живы. И может быть стали умнее.
-
- Сообщения: 68
- ОС: Debian
Re: wget + многопоточность
может я ваш спор усмерю,
смысл от многопоточности есть! только тогда когда вы качаете не архивы а например куча мелких файлов,
тогда только от многопоточность прирост скорости оооочень большой!
смысл от многопоточности есть! только тогда когда вы качаете не архивы а например куча мелких файлов,
тогда только от многопоточность прирост скорости оооочень большой!
-
- Сообщения: 1913
- Статус: zzz..z