无Last-Modified响应头时,wget避免重复下载镜像文件的方案
问题(翻译后)
我需要刷新某网站的镜像,但目标服务器未配置Last-Modified响应头,wget提示:
Last-modified header missing -- time-stamps turned off. Remote file exists and could contain links to other resources -- retrieving.
我没有该服务器的管理员权限,希望设置wget忽略本地与远程文件大小相同的文件,以此减少带宽占用、避免重复下载——即便文件内容不同但大小一致也无需重新下载。请问如何通过命令行实现这一过滤逻辑?
解决方法
直接在wget命令中添加--size-only参数即可实现需求。这个参数会让wget仅对比本地文件和远程文件的大小:
- 本地文件不存在时,正常下载
- 本地文件存在且与远程文件大小一致,直接跳过下载(不校验内容差异)
- 本地文件与远程文件大小不同时,重新下载
比如你原本的镜像命令如果是:
wget --mirror http://your-target-site.com/
修改为:
wget --mirror --size-only http://your-target-site.com/
补充说明
--size-only完全适配你的场景:它不依赖服务器的Last-Modified响应头,仅通过文件大小作为判断依据,严格遵循“大小相同就跳过”的逻辑,完全满足你减少带宽占用、避免重复下载的要求。
内容的提问来源于stack exchange,提问作者OneArb
相关产品推荐
相关产品推荐

