wget如何只下载更新版本的文件

时间:2018-06-14 12:06:40

标签: download wget

脚本定期使用wget:

从远程服务器下载一些数据文件
{{1}}

-N开关用于打开时间戳。 (可能是多余的,这似乎是默认的)

我预计如果有更新的远程版本,只会下载该文件。 但这种情况并非如此。无论远程文件是否与本地文件具有相同的时间戳,实际下载都已完成。

该文件有点冗长,所以我的计划是经常检查新版本,但只能根据需要下载。不幸的是,这种方法似乎不可能。

猜测:URL引用没有文件,但是是api调用。这可能是原因吗?

但是:本地文件的时间戳设置为远程文件的时间戳 - 所以我知道时间戳信息可用。

我错过了什么吗?

注意:

  • 远程服务器不受我控制
  • 本地服务器运行ubuntu 16.04
  • wget --version:在linux-gnu上构建的GNU Wget 1.17.1。

1 个答案:

答案 0 :(得分:3)

文档提到:

  

使用-O并不意味着简单地使用名称文件而不是   URL中的那个;"相反,它类似于shell重定向:   wget -O file http://foo旨在像wget -O - http://foo > file;一样工作   文件将被立即截断,所有下载的内容都将被写入。

     

出于这个原因,-N(用于时间戳检查)不支持   与-O组合:因为文件总是新创建的,所以它会   总是有一个非常新的时间戳。如果是这样,将发出警告   使用组合。

因此,一个选项是省略-O选项,让wget下载文件(如果需要),只需在目标目录中创建一个名为latest.xml.gz的符号链接,指向下载的文件......