Потребляя пропускную способность - PullRequest
0 голосов
/ 29 июля 2010

Я знаю, как написать базовый сценарий bash, который использует wget для загрузки файла, но как запустить его в бесконечном цикле для загрузки указанного файла, удалить его после завершения загрузки, а затем загрузить снова.

Ответы [ 5 ]

5 голосов
/ 29 июля 2010

вы ищете

while :
do
    wget -O - -q "http://some.url/" > /dev/null
done

это не сохранит файл, не выведет бесполезную информацию и снова и снова сбросит содержимое в /dev/null

изменить , чтобы просто использовать пропускную способность, используйте ping -f или ping -f -s 65507

3 голосов
/ 29 июля 2010

Если ваша цель - максимально увеличить пропускную способность, особенно для целей бенчмаркинга, используйте iperf.Вы запускаете iperf на своем сервере и клиенте, и он проверит вашу пропускную способность, используя указанный протокол и параметры.Он может тестировать одностороннюю или двустороннюю пропускную способность и при желании может пытаться достичь «целевого» использования полосы пропускания (т. Е. 3 Мбит / с).

1 голос
/ 29 июля 2010

Если вы хотите использовать пропускную способность сети, вам понадобится другой компьютер.Затем с компьютера A, IP 192.168.0.1, прослушивайте порт (например, 12345).

$ netcat -l -p 12345

Затем с другого компьютера отправьте на него данные.

$ netcat 192.168.0.1 12345 < /dev/zero
1 голос
/ 29 июля 2010

Все возможно с программированием. :)

Если вы хотите максимально увеличить пропускную способность вашего интернета, вы можете запустить множество процессов wget и позволить им одновременно загружать некоторые файлы образов больших дисков, одновременно отправляя огромные файлы обратно на некоторый сервер .

Детали оставлены для реализации, но это один из способов максимизировать вашу пропускную способность.

0 голосов
/ 30 июля 2010

Я предпочитаю использовать curl для wget. это более редактируемый Вот отрывок из написанного мной bash-скрипта, который проверяет версию SVN, а затем дает пользователю возможность загрузить стабильную или последнюю версию. Затем он анализирует файл, отделяя «пользовательские настройки» от остальной части скрипта.

     svnrev=`curl -s -m10  mythicallibrarian.googlecode.com/svn/trunk/| grep -m1 Revision |  sed s/"<html><head><title>mythicallibrarian - "/""/g|  sed s/": \/trunk<\/title><\/head>"/""/g`

if ! which librarian-notify-send>/dev/null && test "$LinuxDep" = "1"; then
    dialog --title "librarian-notify-send" --yesno "install librarian-notify-send script for Desktop notifications?" 8 25
    test $? = 0 && DownloadLNS=1 || DownloadLNS=0
    if [ "$DownloadLNS" = "1" ]; then
        curl "http://mythicallibrarian.googlecode.com/files/librarian-notify-send">"/usr/local/bin/librarian-notify-send"
        sudo chmod +x /usr/local/bin/librarian-notify-send
    fi
fi

if [ ! -f "./librarian" ]; then
    DownloadML=Stable
    echo "Stable `date`">./lastupdated
else

 lastupdated="`cat ./lastupdated`"
DownloadML=$(dialog --title "Version and Build options" --menu "Download an update first then Build mythicalLibrarian" 10 70 15 "Latest" "Download and switch to SVN $svnrev" "Stable" "Download and switch to last stable version"  "Build"  "using: $lastupdated" 2>&1 >/dev/tty) 
if [ "$?" = "1" ]; then
    clear
    echo "mythicalLibrarian was not updated."
    echo "Please re-run mythicalSetup."
        echo "Done."
    exit 1
fi
fi
clear
if [ "$DownloadML" = "Stable" ]; then
    echo "Stable "`date`>"./lastupdated"
    test -f ./mythicalLibrarian.sh && rm -f mythicalLibrarian.sh
    curl "http://mythicallibrarian.googlecode.com/files/mythicalLibrarian">"./mythicalLibrarian.sh"
    cat "./mythicalLibrarian.sh"| sed s/'   '/'\\t'/g |sed s/'\\'/'\\\\'/g   >"./mythicalLibrarian1" #sed s/"\\"/"\\\\"/g |
    rm ./mythicalLibrarian.sh
    mv ./mythicalLibrarian1 ./mythicalLibrarian.sh
    parsing="Stand-by Parsing mythicalLibrarian"
    startwrite=0
    test -f ./librarian && rm -f ./librarian
    echo -e 'mythicalVersion="'"`cat ./lastupdated`"'"'>>./librarian
    while read line
    do
        test "$line" = "########################## USER JOBS############################" && let startwrite=$startwrite+1
        if [ $startwrite = 2 ]; then
            clear
            parsing="$parsing""."
            test "$parsing" = "Stand-by Parsing mythicalLibrarian......." && parsing="Stand-by Parsing mythicalLibrarian"
            echo $parsing
            echo -e "$line" >> ./librarian
        fi
    done <./mythicalLibrarian.sh

    clear
    echo "Parsing mythicalLibrarian completed!"
    echo "Removing old and downloading new version of mythicalSetup..."
    test -f ./mythicalSetup.sh && rm -f ./mythicalSetup.sh
    curl "http://mythicallibrarian.googlecode.com/files/mythicalSetup.sh">"./mythicalSetup.sh"
    chmod +x "./mythicalSetup.sh"
    ./mythicalSetup.sh
    exit 0

fi
if [ "$DownloadML" = "Latest" ]; then
    svnrev=`curl -s  mythicallibrarian.googlecode.com/svn/trunk/| grep -m1 Revision |  sed s/"<html><head><title>mythicallibrarian - "/""/g| sed s/": \/trunk<\/title><\/head>"/""/g`
    echo "$svnrev "`date`>"./lastupdated"
    test -f ./mythicalLibrarian.sh && rm -f mythicalLibrarian.sh
    curl "http://mythicallibrarian.googlecode.com/svn/trunk/mythicalLibrarian">"./mythicalLibrarian.sh"
    cat "./mythicalLibrarian.sh"| sed s/'   '/'\\t'/g |sed s/'\\'/'\\\\'/g   >"./mythicalLibrarian1" #sed s/"\\"/"\\\\"/g |
    rm ./mythicalLibrarian.sh
    mv ./mythicalLibrarian1 ./mythicalLibrarian.sh
    parsing="Stand-by Parsing mythicalLibrarian"
    startwrite=0
    test -f ./librarian && rm -f ./librarian
    echo -e 'mythicalVersion="'"`cat ./lastupdated`"'"'>>./librarian
    while read line
    do
        test "$line" = "########################## USER JOBS############################" && let startwrite=$startwrite+1
        if [ $startwrite = 2 ]; then
            clear
            parsing="$parsing""."
            test "$parsing" = "Stand-by Parsing mythicalLibrarian......." && parsing="Stand-by Parsing mythicalLibrarian"
            echo $parsing
            echo -e "$line" >> ./librarian
        fi
    done <./mythicalLibrarian.sh

    clear
    echo "Parsing mythicalLibrarian completed!"
    echo "Removing old and downloading new version of mythicalSetup..."
    test -f ./mythicalSetup.sh && rm -f ./mythicalSetup.sh
    curl "http://mythicallibrarian.googlecode.com/svn/trunk/mythicalSetup.sh">"./mythicalSetup.sh"
    chmod +x "./mythicalSetup.sh"
    ./mythicalSetup.sh
    exit 0

fi

РЕДАКТИРОВАТЬ: НИКОГДА Я НЕ ДУМАЛ, ЧТО ВЫ БЫЛИ СКАЗАТЬ, ЧТО ЭТО БЫЛО ЗАГРУЗИТЬ В БЕСКОНЕЧНУЮ ПЕТЛЯ

...