我想镜像一个具有大型、更新数据库转储的站点。阅读手册页后,我不完全理解-N
和选项以及它们如何组合。-c
wget
有没有办法下载文件,最好使用 wget,以便:
- 如果服务器的时间戳比本地的时间戳新,则下载替换本地文件
- 如果服务器的时间戳与本地相同,但远程大小较大,则 wget 继续下载
我碰巧知道服务器支持发送修改时间。
答案1
这wget手册有更多的信息man wget
:
如果满足以下两个条件之一,文件将被视为新文件:
- 本地尚不存在该名称的文件。
- 该名称的文件确实存在,但远程文件的修改时间比本地文件更新。
为了实现这一点,程序需要知道本地和远程文件的最后修改时间。我们将此信息称为文件的时间戳。
GNU Wget 中的时间戳是使用
--timestamping
(-N
) 选项打开的,或者通过.wgetrc
.使用此选项,对于要下载的每个文件,Wget 将检查本地是否存在同名文件。如果是这样,并且远程文件较旧,Wget 将不会下载它。如果本地文件不存在,或者文件大小不匹配,Wget 将下载远程文件,无论时间戳如何。
简而言之,-N
应该按照你的要求去做。