当前位置:   article > 正文

Linux命令:wget命令

wget命令

1 wget命令

1.1 简介

wget命令是一种常用的网络工具,用于从Web服务器下载文件。
wget命令基于HTTP、HTTPS和FTP协议从指定的URL下载文件。它可以在Linux和Unix系统的命令行中使用,并支持各种参数来定制下载行为。Wget也可以根据HTML、XHTML和CSS页面中的链接,创建远程网站的本地版本。
Wget旨在应对缓慢或不稳定的网络连接;如果由于网络问题下载失败,它会不断重试,直到检索到整个文件。如果服务器支持重新获取,它会指示服务器从停止下载的地方继续下载。
wget命令默认的配置文件有两个:

  • /etc/wgetrc :全局配置文件
  • .wgetrc:用户启动文件
    当运行 Wget 时,它会首先读取 /etc/wgetrc(如果存在),然后读取当前用户目录下的 .wgetrc(如果存在)。因此,.wgetrc 中的设置可以覆盖 /etc/wgetrc 中的相同设置

1.2 命令说明

使用:wget [option]… [URL]…

基础选项:

  • -V:显示wget版本
  • -h:帮助信息
  • -b:后台下载。如果没有通过-o指定输出文件,输出将被重定向到wget-log。
  • -e:执行多个命令

日志记录和输入文件选项:

  • -o logfile,–output-file=logfile:所有日志都输入到logfile中。-o直接覆盖
  • -a logfile,–append-output=logfile:同-o选项,将所有日志输入到logfile中,-a是追加,而不会覆盖旧文件
  • -d:调试
  • -q:关闭Wget的输出
  • -i file,–input-file=file:从本地或外部文件中找到的URL下载
  • -F, --force-html: 将输入文件视为HTML。
  • –config=FILE(此处是双横线): 指定使用的配置文件

下载选项:

  • –bind-address=ADDRESS:在建立客户端TCP/IP连接时,绑定到本地机器上的地址。ADDRESS可以指定为主机名或IP地址。如果机器绑定了多个ip,这个选项会很有用。
  • –bind-dns-address=ADDRESS:这个地址覆盖了DNS请求的路由。如果不想使用/etc/resolv.conf路由,可以使用–dns-servers。ADDRESS只能输入IPv4地址或IPv6地址。为了实现这个选项,Wget需要使用libcares构建。
  • -t number,–tries=number:最大尝试次数,超过次数会报错”connection refused“或者”not found“
  • -O file,–output-document=file:指定下载文件的名称
  • –backups=backups:在(覆盖)写入文件之前,通过向文件名添加.1后缀(在VMS上为_1)来备份现有文件。此类备份文件会依次重命名为.2、.3等,直到达到备份数量限制(超过该数量限制的文件将丢失)
  • -c:断点续传。如果下载中断,可以从上次下载的位置继续下载
  • -S:打印由HTTP服务器发送的头部信息以及由FTP服务器发送的响应。
  • -T seconds,–timeout=seconds:设置网络超时为秒(seconds)。这相当于同时指定–dns-timeout、–connect-timeout和–read-timeout。默认是900秒的读取超时
  • –limit-rate=amount:将下载速度限制为每秒amount字节。Amount可以以字节为单位表示,也可以使用k后缀表示千字节,或者使用m后缀表示兆字节。例如,–limit-rate=20k将限制检索速率为20KB/s。
  • -w seconds,–wait=seconds:在检索之间等待指定的秒数。建议使用此选项,因为它通过减少请求的频率来减轻服务器的负载。
  • –user=user --password=password:为FTP和HTTP文件检索指定用户名user和密码password。对于FTP连接,可以使用–ftp-user和–ftp-password选项覆盖这些参数;对于HTTP连接,可以使用–http-user和–http-password选项覆盖这些参数。
  • –ask-password:为每个建立的连接提示输入密码。不能与–password同时使用

目录选项:

  • -nd,–no-directories:在递归检索时不创建目录层次结构。启用此选项后,所有文件将保存到当前目录,而不会发生冲突(如果名称出现多次,文件名将获得扩展名.n)。
  • -nH:不创建主机目录。默认情况下,wget会在当前目录下创建以主机名命名的目录来保存下载的文件。使用此选项可以禁止创建这样的目录
  • -P prefix:将文件下载到指定目录

HTTP选项:

  • -E:如果下载的文件类型为 application/xhtml+xml 或 text/html,并且 URL 的结尾不符合正则表达式 .[Hh][Tt][Mm][Ll]?,该选项会在本地文件名末尾添加后缀 .html
    HTTPS (SSL/TLS)选项:
  • –no-check-certificate:不检查服务器证书是否由可用的证书颁发机构颁发。同时也不要求 URL 的主机名与证书中提供的通用名称匹配。

递归检索选项:

(递归检索选项:指 Wget 在下载网页时,不仅下载指定的 URL,还下载该网页上所有链接的页面,形成一个完整的网站镜像。这种递归下载的过程可以深入网站的各个层级,下载所有相关的文件,包括图片、样式表、脚本文件等,以尽可能地保留原始网站的结构和内容。)

  • -l depth,–level=N:限制递归的层级。例如,–level=1 将只下载一级链接的页面。
  • -r:默认情况下,递归的深度限制为 5,这意味着 Wget 会下载初始页面,以及初始页面上的链接页面,最多到第五层深度。
  • –no-parent:不下载上级目录的页面。
  • –no-host-directories:不在本地创建以主机名命名的目录。
  • –page-requisites:下载显示页面所需的文件,如图片。
  • –html-extension 或 --convert-links:将链接转换为本地文件,使下载的网页能在本地正确显示。

常见的几种错误代码:

  • 0:没有发生问题。Wget 成功下载,没有遇到任何错误。
  • 1:通用错误代码。这通常表示发生了某种未具体指定的错误,需要进一步查看输出或日志文件以了解详细信息。
  • 2:解析错误。这通常发生在解析命令行选项、.wgetrc 文件或 .netrc 文件时。这可能是因为文件格式不正确、文件不存在或文件包含无效的条目。
  • 3:文件 I/O 错误。这表示在尝试读取或写入文件时发生了错误。可能是因为文件权限问题、磁盘空间不足、文件路径不正确或文件系统错误。
  • 4:网络故障。这通常意味着 Wget 无法建立到指定服务器的网络连接。可能是因为服务器不可达、网络配置错误、防火墙阻止了连接或网络中断。
  • 5:SSL 验证失败。当使用 HTTPS 协议时,如果服务器的 SSL 证书无效或不被信任,Wget 会返回此错误。这可能是因为证书已过期、证书颁发机构不受信任或证书链不完整。
  • 6:用户名/密码身份验证失败。这发生在 Wget 尝试使用提供的用户名和密码进行身份验证,但服务器拒绝了这些凭据。可能是因为凭据不正确、账户被锁定或账户不存在。
  • 7:协议错误。这表示 Wget 在尝试与服务器通信时遇到了协议层面的错误。可能是因为服务器不支持请求的协议版本、请求的格式不正确或服务器实现存在错误。
  • 8:服务器发出了错误响应。这通常意味着服务器在处理请求时遇到了问题,并返回了一个 HTTP 错误状态码(如 404 Not Found、500 Internal Server Error 等)。

1.3 实例

# 下载单个文件
wget https://nginx.org/download/nginx-1.24.0.tar.gz

# 下载到指定目录
wget -P /opt/ https://nginx.org/download/nginx-1.24.0.tar.gz

# 下载到指定目录并重命名
wget -O /opt/nginx.tar.gz https://nginx.org/download/nginx-1.24.0.tar.gz

# 递归下载网站
wget -r http://www.baidu.com
ls
haproxy-2.8.5  snap  test  www.baidu.com
ls www.baidu.com/
index.html  robots.txt

# 限制下载速度 
wget --limit-rate=200k https://nginx.org/download/nginx-1.24.0.tar.gz

# 设置重置次数
wget --tries=10 http://www.example.com/somefile.zip

# 设置后台下载
wget -b https://nginx.org/download/nginx-1.24.0.tar.gz
Continuing in background, pid 589607.
Output will be written to ‘wget-log’.
# 如果不设置 -o 或 -a 参数,日志会默认输出到 wget-log

# 继续未完成的任务
wget -c https://nginx.org/download/nginx-1.24.0.tar.gz

# 下载多个文件
cat a.txt
https://nginx.org/download/nginx-1.24.0.tar.gz
https://nginx.org/download/nginx-1.22.1.tar.gz
wget -i a.txt
####### 输出 ####### 
--2024-03-07 02:37:32--  https://nginx.org/download/nginx-1.24.0.tar.gz
Resolving nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:5c0:2600::6, ...
Connecting to nginx.org (nginx.org)|52.58.199.22|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1112471 (1.1M) [application/octet-stream]
Saving to: ‘nginx-1.24.0.tar.gz’

nginx-1.24.0.tar.gz 100%[===================>]   1.06M  23.3KB/s    in 50s

2024-03-07 02:38:24 (21.9 KB/s) - ‘nginx-1.24.0.tar.gz’ saved [1112471/1112471]

--2024-03-07 02:38:24--  https://nginx.org/download/nginx-1.22.1.tar.gz
Reusing existing connection to nginx.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 1073948 (1.0M) [application/octet-stream]
Saving to: ‘nginx-1.22.1.tar.gz’

nginx-1.22.1.tar.gz 100%[===================>]   1.02M  21.6KB/s    in 49s

2024-03-07 02:39:13 (21.4 KB/s) - ‘nginx-1.22.1.tar.gz’ saved [1073948/1073948]

FINISHED --2024-03-07 02:39:13--
Total wall clock time: 1m 41s
Downloaded: 2 files, 2.1M in 1m 39s (21.6 KB/s)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号