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 只作临时手段。