Linux:wget指令

学习自:linux系统安装.tar.gz文件,Linux中下载、解压、安装.tar.gz文件

wget常用命令详解_懿曲折扇情的博客-CSDN博客

1、说明

wget命令是Linux系统用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议下载文件, 而且wget还提供了很多选项,例如下载多个文件、后台下载,使用代理等等,使用非常方便。

如果没有安装wget,可以通过以下指令安装:

yum -y install wget

 wget下载的包一般放在 ~/download目录下

补充:①wget可以直接用于两个Linux操作系统之间的文件传输;

2、用法:

wget [选项] url

一些常用URL的获取地址(找到要下载的文件,右键复制链接地址,这就是URL):

tomcat:https://tomcat.apache.org/download-80.cgi中archives,找到对应版本,进入Bin目录下,下载tar.gz

Java网址:https://www.oracle.com/java/technologies/downloads/#java8

nginx:http://nginx.org/en/download.html

3、选项与参数

常用版(加粗的代表最常用的)

选项

说明

用法

-o 将下载信息存入日志文件 wget -o download.log url
-O 另存为其他名字 wget -O name url
-P 另存为其他目录 wget -P /home/ym url
-c

断点续传

当文件较大,网络断开且下载未完成时,使用-c可以恢复下载,无需从头开始

wget -c url 
-b

 后台下载

下载日志重定向当前目录下的wget-log文件,使用`tail -f wget-log`查看

wget -b url 
-i

下载多个文件

 

wget -i list.txt

 

 在txt中添加多行url,即可依次下载这些文件
--limit-rate 限制下载速度 

wget --limit-rate=1m url

下载速度限制为1m/s 

-Q 限制总下载大小 (只有在下载多个文件时生效)

 wget -Q5m -i list.txt

依次下载多个文件,下载总大小超过5m时停止

--tries 增加重试次数  wget --tries=30 url 
ftp-url  匿名ftp下载 wget ftp-url

--ftp-user

--ftp-password

从受密码保护的FTP服务器下载文件,需要指定用户名和密码   wget --ftp-user=USERNAME --ftp-password=PASSWORD url

 

完整版

-V,  --version           显示wget的版本后退出
  -h,  --help              打印语法帮助
  -b,  --background        启动后转入后台执行
  -e,  --execute=COMMAND   执行`.wgetrc'格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc
* 记录和输入文件 
  -o,  --output-file=FILE     把记录写到FILE文件中
  -a,  --append-output=FILE   把记录追加到FILE文件中
  -d,  --debug                打印调试输出
  -q,  --quiet                安静模式(没有输出)
  -v,  --verbose              冗长模式(这是缺省设置)
  -nv, --non-verbose          关掉冗长模式,但不是安静模式
  -i,  --input-file=FILE      下载在FILE文件中出现的URLs
  -F,  --force-html           把输入文件当作HTML格式文件对待
  -B,  --base=URL             将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
       --sslcertfile=FILE     可选客户端证书
       --sslcertkey=KEYFILE   可选客户端证书的KEYFILE
       --egd-file=FILE        指定EGD socket的文件名
* 下载 
       --bind-address=ADDRESS   指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
  -t,  --tries=NUMBER           设定最大尝试链接次数(0 表示无限制).
  -O   --output-document=FILE   把文档写到FILE文件中
  -nc, --no-clobber             不要覆盖存在的文件或使用.#前缀
  -c,  --continue               接着下载没下载完的文件
       --progress=TYPE          设定进程条标记
  -N,  --timestamping           不要重新下载文件除非比本地文件新
  -S,  --server-response        打印服务器的回应
       --spider                 不下载任何东西
  -T,  --timeout=SECONDS        设定响应超时的秒数
  -w,  --wait=SECONDS           两次尝试之间间隔SECONDS秒
       --waitretry=SECONDS      在重新链接之间等待1...SECONDS秒
       --random-wait            在下载之间等待0...2*WAIT秒
  -Y,  --proxy=on/off           打开或关闭代理
  -Q,  --quota=NUMBER           设置下载的容量限制
       --limit-rate=RATE        限定下载输率
* 目录 
  -nd  --no-directories            不创建目录
  -x,  --force-directories         强制创建目录
  -nH, --no-host-directories       不创建主机目录
  -P,  --directory-prefix=PREFIX   将文件保存到目录 PREFIX/...
       --cut-dirs=NUMBER           忽略 NUMBER层远程目录
* HTTP 选项 
       --http-user=USER      设定HTTP用户名为 USER.
       --http-passwd=PASS    设定http密码为 PASS.
  -C,  --cache=on/off        允许/不允许服务器端的数据缓存 (一般情况下允许).
  -E,  --html-extension      将所有text/html文档以.html扩展名保存
       --ignore-length       忽略 `Content-Length'头域
       --header=STRING       在headers中插入字符串 STRING
       --proxy-user=USER     设定代理的用户名为 USER
       --proxy-passwd=PASS   设定代理的密码为 PASS
       --referer=URL         在HTTP请求中包含 `Referer: URL'
  -s,  --save-headers        保存HTTP头到文件
  -U,  --user-agent=AGENT    设定代理的名称为 AGENT而不是 Wget/VERSION.
       --no-http-keep-alive  关闭 HTTP活动链接 (永远链接).
       --cookies=off         不使用 cookies.
       --load-cookies=FILE   在开始会话前从文件 FILE中加载cookie
       --save-cookies=FILE   在会话结束后将 cookies保存到 FILE文件中
* FTP 选项 
  -nr, --dont-remove-listing   不移走 `.listing'文件
  -g,  --glob=on/off           打开或关闭文件名的 globbing机制
       --passive-ftp           使用被动传输模式 (缺省值).
       --active-ftp            使用主动传输模式
       --retr-symlinks         在递归的时候,将链接指向文件(而不是目录)
* 递归下载 
  -r,  --recursive          递归下载--慎用!
  -l,  --level=NUMBER       最大递归深度 (inf 或 0 代表无穷).
       --delete-after       在现在完毕后局部删除文件
  -k,  --convert-links      转换非相对链接为相对链接
  -K,  --backup-converted   在转换文件X之前,将之备份为 X.orig
  -m,  --mirror             等价于 -r -N -l inf -nr.
  -p,  --page-requisites    下载显示HTML文件的所有图片
* 递归下载中的包含和不包含(accept/reject) 
  -A,  --accept=LIST                分号分隔的被接受扩展名的列表
  -R,  --reject=LIST                分号分隔的不被接受的扩展名的列表
  -D,  --domains=LIST               分号分隔的被接受域的列表
       --exclude-domains=LIST       分号分隔的不被接受的域的列表
       --follow-ftp                 跟踪HTML文档中的FTP链接
       --follow-tags=LIST           分号分隔的被跟踪的HTML标签的列表
  -G,  --ignore-tags=LIST           分号分隔的被忽略的HTML标签的列表
  -H,  --span-hosts                 当递归时转到外部主机
  -L,  --relative                   仅仅跟踪相对链接
  -I,  --include-directories=LIST   允许目录的列表
  -X,  --exclude-directories=LIST   不被包含目录的列表
  -np, --no-parent                  不要追溯到父目录

4、如何判断某个web服务器、网页上的资源可否用wget进行远程下载

核心是检查URL可访问性服务器的响应行为

1)curl -I分析服务器响应

如果wget下载失败,可以用curl -I查看服务器返回的HTTP头信息:

curl -I https://example.com/目标资源路径  # -I 仅显示响应头

关键响应头解析:

  • HTTP/1.1 200 OK:资源存在且允许访问;
  • Content-Type:如果是application/octet-stream、application/zip等,通常是可下载的文件;如果是text/html但浏览器显示文件内容,也可下载。
  • Content-Disposition:attachment;filename="file.zip":服务器明确提示“该资源为附件,建议下载”,可以直接用wget保存;
  • Location:...:表示资源被重定向,wget默认会跟随重定向(可通过--max-redirect控制),但如果重定向到登录页则无法下载。

2)直接访问

①浏览器

直接将URL复制到浏览器地址栏,观察能否正常下载或显示资源:

  • 如果浏览器可以直接下载(zip、tar.gz)显示文本内容(txt、html),说明URL可访问
  • 如果显示404、403、500等状态码,说明资源无法直接访问。

②wget直接测试(最直接)

在终端执行wget命令尝试下载,根据输出判断结果:

wget https://example.com/目标资源路径  # 替换为实际 URL

通常会有几种结果:

  • 成功下载:200 OK

  输出类似如下内容,显示文件大小、下载进度,最终提示100%和保存路径:

HTTP request sent, awaiting response... 200 OK
Length: 123456 (120K) [application/zip]
Saving to: ‘file.zip100%[======================================>] 123,456      500KB/s   in 0.2s
2023-10-01 12:34:56 (500 KB/s) - ‘file.zip’ saved [123456/123456]
  • 访问被拒绝(403 Forbidden)

  输出包含403 Forbidden,表示服务器拒绝该请求(可能由于权限、IP限制、User-Agent过滤等):

HTTP request sent, awaiting response... 403 Forbidden
2023-10-01 12:34:56 ERROR 403: Forbidden.

  可以尝试加模拟header信息重试(以下为举例,实际可能有差异):

wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" https://example.com/目标资源路径
  • 文件未找到(404 Not Found)  

  URL对应的资源不存在

 

HTTP request sent, awaiting response... 404 Not Found
2023-10-01 12:34:56 ERROR 404: Not Found.

 

posted @ 2023-08-03 16:36  ShineLe  阅读(261)  评论(0)    收藏  举报