无法使用--no-clobber(-c -F -B unhelpful)恢复"wget --mirror"

bar*_*ter 15 wget

我用"wget --mirror [sitename]"启动了一个wget镜像,它工作正常,但不小心中断了这个过程.

我现在想要恢复镜像,并提出以下警告:

  • 如果wget已经下载了一个文件,我不希望它再次下载它.我甚至不想让wget检查时间戳:我知道我的版本是"最近的".

  • 确实希望wget读取它已经下载的文件,并按照这些文件中的链接.

我可以使用"-nc"作为上面的第一点,但我似乎无法强制wget读取它已经下载的文件.

我试过的事情:

  • 显而易见的"wget -c -m"不起作用,因为它想要比较时间戳,这需要至少向远程服务器发出HEAD请求.

  • "wget -nc -m"不起作用,因为-m表示-N,-nc与-N不兼容.

  • "wget -F -nc -r -l inf"是我能想到的最好的,但它仍然失败.我希望"-F"会强迫wget读取本地的,已经下载的文件作为HTML,因此遵循链接,但这似乎不会发生.

  • 我尝试了一些其他选项(如"-c"和"-B [sitename]"),但没有任何效果.

如何让wget恢复这个镜像?

Fio*_*ala 9

显然这有用:

解决:Wget错误"无法同时刻录时间戳而不是破坏旧文件."发布于2012年2月4日在尝试恢复站点镜像操作时,我正在运行Wget,我遇到了错误"不能时间戳,而不是同时破坏旧文件".事实证明,在同一时间设置-N和-nc标志的情况下运行Wget是不可能的,所以如果你想用noclobber恢复递归下载,你必须禁用-N.-m属性(用于镜像)本质上设置-N属性,因此您必须从-m切换到-r以便也使用noclobber.

来自:http://www.marathon-studios.com/blog/solved-wget-error-cant-timestamp-and-not-clobber-old-files-at-the-same-time/


Hou*_*ter 6

-m,根据wget手册相当于这个更长的系列设置:-r -N -l inf --no-remove-listing. 只需使用这些设置而不是-m, 并且不使用-N(时间戳)。

现在我不确定是否有办法让 wget 从现有的 html 文件下载 url。可能有一个解决方案,我知道它可以将 html 文件作为输入并抓取其中的所有链接。也许您可以使用 bash 命令将所有 html 文件连接到一个大文件中。

我通过删除所有 html 文件解决了这个问题,因为我不介意只重新下载它们。但这可能不适用于每个人的用例。