代码之家  ›  专栏  ›  技术社区  ›  oshirowanen

消耗带宽

  •  0
  • oshirowanen  · 技术社区  · 14 年前

    我知道如何编写一个使用wget下载文件的bash脚本,但是如何没完没了地运行这个脚本来下载指定的文件,下载完成后删除它,然后再次下载它。

    5 回复  |  直到 14 年前
        1
  •  5
  •   mvds    14 年前

    你在找什么

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

    这不会保存文件,不会输出无用的信息,也不会将内容一次又一次地转储到文件中 /dev/null

    编辑 要消耗带宽,请使用 ping -f ping -f -s 65507

        2
  •  3
  •   Borealid    14 年前

    如果你的目标是最大化你的带宽,特别是为了基准测试,使用 iperf . 你跑吧 在您的服务器和客户机上,它将使用您指定的协议和参数测试您的带宽。它可以测试单向或双向吞吐量,并且可以选择尝试实现“目标”带宽利用率(即3Mbps)。

        3
  •  1
  •   LukeN    14 年前

    编程一切皆有可能。:)

        4
  •  1
  •   Didier Trosset    14 年前

    如果你想消耗网络带宽,你需要另一台电脑。然后从计算机A,IP 192.168.0.1,监听一个端口(例如12345)。

    $ netcat -l -p 12345
    

    $ netcat 192.168.0.1 12345 < /dev/zero
    
        5
  •  0
  •   Adam Outler    14 年前

    我比较喜欢用卷曲来表示。它更易于编辑。下面是我编写的bash脚本的摘录,该脚本检查SVN版本,然后让用户选择下载stable或latest。然后解析出文件,将“用户设置”与脚本的其余部分分开。

         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