如果时间戳未更改,则继续下载

Zac*_*nce 5 wget timestamps

我想用大型更新数据库转储镜像站点。阅读手册页后,我并不完全理解-N-c选项以及它们如何组合wget

有没有办法下载文件,最好使用 wget,以便:

  • 如果服务器的时间戳比本地时间戳新,则下载替换本地文件
  • 如果服务器的时间戳与本地时间戳相同,但远程大小较大,则 wget 继续下载

我碰巧知道服务器支持发送修改时间。

Tho*_*mas 1

wget 手册包含更多信息man wget

如果满足以下两个条件之一,文件将被视为新文件:

  1. 本地尚不存在该名称的文件。
  2. 该名称的文件确实存在,但远程文件的修改时间比本地文件更新。

为了实现这一点,程序需要知道本地和远程文件的最后修改时间。我们将此信息称为文件的时间戳。

GNU Wget 中的时间戳是使用--timestamping( -N) 选项打开的,或者通过 中的 timestamping = on 指令打开的.wgetrc。使用此选项,对于要下载的每个文件,Wget 将检查本地是否存在同名文件。如果是这样,并且远程文件较旧,Wget 将不会下载它。

如果本地文件不存在,或者文件大小不匹配,Wget 将下载远程文件,无论时间戳如何。

简而言之,-N应该按照你的要求去做。