【问题标题】:how reliable would it be to download over a 100,000 files via wget from a bash file over ssh?通过 wget 从 ssh 上的 bash 文件下载超过 100,000 个文件有多可靠?
【发布时间】:2010-09-27 16:15:47
【问题描述】:

我有一个包含 wget 命令的 bash 文件,用于下载超过 100,000 个文件,总计大约 20gb 的数据。

bash 文件类似于:

wgethttp://something.com/path/to/file.data

wgethttp://something.com/path/to/file2.data

wgethttp://something.com/path/to/file3.data

wgethttp://something.com/path/to/file4.data

这正好有 114,770 行。 SSH 到我有帐户的服务器并运行它有多可靠?我的 ssh 会话最终会超时吗?我是否必须一直被 ssh'ed?如果我的本地计算机崩溃/关闭了怎么办?

另外,有人知道这需要多少资源吗?我想在共享服务器上执行此操作是不是疯了?

我知道这是一个奇怪的问题,只是想知道是否有人有任何想法。谢谢!

【问题讨论】:

    标签: ssh wget


    【解决方案1】:

    看看另一种技术可能是值得的,比如rsync。我在很多项目中都使用过它,效果非常好。

    【讨论】:

      【解决方案2】:

      使用

      #nohup ./scriptname &>logname.log

      这将确保

      • 即使 ssh 会话中断,该过程仍将继续
      • 您可以监控它,因为它正在运行

      还会建议,你可以定期有一些提示,对日志分析有好处。例如#echo "1000 files copied"


      就资源利用而言,完全取决于系统,主要取决于网络特性。从理论上讲,您可以仅使用数据大小和带宽来计算时间。但在现实生活中,会出现延迟、延迟和数据丢失。

      所以做一些假设,做一些数学,你会得到答案:)

      【讨论】:

        【解决方案3】:

        开始
        nohup ./scriptname &
        

        你应该没事。 此外,我建议您记录进度,以便您能够找出它停止的位置。

        wget url >>logfile.log
        

        应该够了。

        要实时监控进度,您可以:

        tail -f logfile.log
        

        【讨论】:

        • ./scriptname & 如果 ssh 会话中断,则不会继续。
        【解决方案4】:

        如果可能,为所有文件生成 MD5 校验和,并使用它来检查它们是否都被正确传输。

        【讨论】:

        • 在没有文件的情况下你是怎么做到的?如果他可以在他下载的服务器上计算 MD5,他可能不需要求助于 wget/http 来移动它们。
        【解决方案5】:

        我建议您使用 nohup 将其从 shell 中分离出来。

        $ nohup myLongRunningScript.sh > script.stdout 2>script.stderr &
        $ exit
        

        脚本将运行完成 - 您无需始终登录。

        请检查您可以为 wget 提供的任何选项,以使其在失败时重试。

        【讨论】:

          【解决方案6】:

          您想断开脚本与 shell 的连接并让它在后台运行(使用 nohup),以便在您注销时它继续运行。

          您还希望拥有某种进度指示器,例如记录下载的每个文件以及所有错误消息的日志文件。 Nohup 将 stderr 和 stdout 发送到文件中。 使用这样的文件,您可以在以后获取损坏的下载和中止的运行。

          首先用一小部分文件对其进行测试运行,看看你是否得到了命令并喜欢输出。

          【讨论】:

            【解决方案7】:

            取决于通信介质、硬件、...的可靠性!

            您可以使用screen 使其在与远程计算机断开连接时保持运行。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多