LINUX.ORG.RU

Многопоточная закачка


0

0

Кто-то меня спрашивал как в консоле качать один файл в несколько потоков. Набрасал скрипт использующий curl для закачки файла по частям и последующей его сборки.

Запостить его сюда или он нафиг никому не нужен?

P.S. Как админ за многопоточную закачку на работе "Поубывал бы" :-)

★★★★★

Re: Многопоточная закачка

Давай. Мне даже не совсем для этого. Хочу разобраться с курлом. =) Лучше в девелопмент запости.

OxiD ★★★★ ()
Ответ на: Re: Многопоточная закачка от OxiD

Re: Многопоточная закачка

Для development тут ничего интересного нет.

$ cat curl_4.sh
#! /bin/bash

if [ $# -ne 2 ]; then
        echo "Usage: $0 <URL> <filesize>"
        exit 1
fi

URL="$1"
size="$2"
threads=4
fname=`basename $URL`

part_size=$[$size/$threads]

for i in `seq $threads` 
do
        if [ $i -eq $threads ]; then
                echo "screen curl -o ${fname}_part_$i -r \"$[$part_size*($i-1)]-$size\" $URL" >> screenrc.$$
        else
                echo "screen curl -o ${fname}_part_$i -r \"$[$part_size*($i-1)]-$[$part_size*$i-1]\" $URL" >> screenrc.$$
                echo 'split' >> screenrc.$$
                echo 'focus' >> screenrc.$$
        fi
done

screen -c screenrc.$$
cat ${fname}_part_* > $fname
rm screenrc.$$ ${fname}_part_*

$ ./curl_4.sh ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.29.tar.bz2 31124710

sdio ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.