068 wget命令

命令说明

wget 是非交互式网络下载器,支持 HTTP/HTTPS/FTP,擅长断点续传、后台下载、递归抓取整站与镜像,是服务器拉取文件与备份脚本的标配。

语法

wget [选项]... URL

常用参数

参数说明
-O 文件指定保存文件名(大写 O),-O- 输出到标准输出
-o 日志把 wget 日志写入文件
-c断点续传(continue),大文件下载必备
-b后台下载(background)
-r -np -nd递归下载整站:-np 不向上、-nd 不建目录层级
--limit-rate限速,如 --limit-rate=2m
--tries / -t重试次数,-t 0 无限重试
-q静默模式
--no-check-certificate跳过 HTTPS 证书校验(自签证书内网用)
--spider只检查 URL 是否存在不下载(探活)
-P 目录指定下载保存目录

使用示例

$ wget https://mirrors.aliyun.com/repo/epel-release-latest-7.noarch.rpm

下载文件并保留原名

$ wget -O redis.tar.gz https://download.redis.io/redis-stable.tar.gz

下载并重命名

$ wget -c https://releases.example.com/big.iso

中断后断点续传大文件

$ wget -b -o wget.log https://host/large.zip

后台下载并记录日志

$ wget --no-check-certificate https://192.168.1.10/file

内网自签证书下载

$ wget -r -np -nH --cut-dirs=2 -R "index.html*" https://mirrors.host/centos/7.9.2009/os/

镜像整个仓库目录

$ wget --limit-rate=1m -t 3 URL

限速 1MB 并最多重试 3 次

$ wget --spider -q URL && echo EXISTS

脚本中探测 URL 有效性

$ wget -qO- https://get.docker.com | sh

下载脚本直接执行(-qO- 输出正文)

实用技巧

  • wget 与 curl:wget 默认保存文件、擅长递归与断点续传;curl 默认输出到终端、擅长接口调试与多协议,两者互补,服务器下载首选 wget。
  • -O 与 -o 大小写陷阱:-O 是输出文件,-o 是日志文件;-q -O- 组合即“静默输出到 stdout”。
  • 断点续传 -c 要求服务器支持 Range 请求;文件名不匹配远端 Content-Disposition 时可能续传错文件。
  • 递归整站镜像三件套:-r(递归)-np(不向父目录)-k(转换链接为本地可看),加 --wait=1 控制频率避免压垮对方。
  • 下载慢或超时:--timeout=30 --tries=5 --waitretry=5 控制重试节奏;限速 --limit-rate 防止占满带宽影响业务。
  • wget 的 SSL 证书报错先修系统 CA(ca-certificates 包),--no-check-certificate 只作临时手段。