【问题标题】:multiple wget -r a site simultaneously?多个 wget -r 同时一个站点?
【发布时间】:2011-01-20 10:12:50
【问题描述】:

任何带有选项的命令/wget?

对于多线程同时递归下载站点?

【问题讨论】:

    标签: multithreading wget


    【解决方案1】:

    我找到了一个不错的解决方案。

    http://www.linuxquestions.org/questions/linux-networking-3/wget-multi-threaded-downloading-457375/阅读原文

    wget -r -np -N [url] &
    wget -r -np -N [url] &
    wget -r -np -N [url] &
    wget -r -np -N [url] &
    

    复制尽可能多的次数,以便拥有尽可能多的进程 下载。这不像一个适当的多线程应用程序那样优雅, 但它只需少量开销即可完成工作。 这里的关键是“-N”开关。这意味着仅传输文件 如果它比磁盘上的更新。这将(主要)防止 每个进程从下载相同的文件到不同的进程 已下载,但跳过文件并下载其他文件 进程没有下载。它使用时间戳作为一种方法 这个,因此会有轻微的开销。

    它对我来说非常有用,并且节省了很多时间。不要有太多 进程,因为这可能会使网站的连接饱和并打勾 主人。最多保持在 4 左右。然而,数量是 仅受两端 CPU 和网络带宽的限制。

    【讨论】:

    • 这对你有用吗?到目前为止,我在两台服务器上使用它没有问题。
    • 为了简单起见,我使用wget -m,一次运行几个
    【解决方案2】:

    通过 xargs 开关使用并行 wget,这个解决方案看起来好多了:

    https://stackoverflow.com/a/11850469/1647809

    【讨论】:

    • 只有事先知道所有可下载的 URL 才好。当您想要镜像站点时,情况并非如此。
    【解决方案3】:

    使用axel进行多连接下载

    apt-get install axel
    
    axel http://example.com/file.zip
    

    【讨论】:

    • 或 get enderunix.org/aget 但这些不是递归解决方案(对于其他遇到这个问题的人来说很好)
    【解决方案4】:

    嗯,您总是可以运行多个wget 实例,不是吗?

    例子:

    wget -r http://somesite.example.org/ &
    wget -r http://othersite.example.net/ &
    

    等等。此语法适用于任何类 Unix 环境(例如 Linux 或 MacOS);不知道如何在 Windows 中执行此操作。

    Wget 本身不支持多线程操作 - 至少,manpageits website 都没有提到这一点。无论如何,由于 wget 支持 HTTP keepalive,瓶颈通常是连接的带宽,而不是同时下载的数量。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-15
    • 2011-09-19
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    相关资源
    最近更新 更多