Linux wget是一个下载文件的工具,它用在命令行下,对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。
wget工具体积小但功能完善,它支持断点续传功能,同时支持ftp和http下载方式,支持代理服务器,设置起来方便简单。
例子1:使用wget下载单个文件
以下代码从网络下载一个文件并保存在当前目录中。
$ cd opt
$ wget http://mirrors.sohu.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal01708.iso
在下载过程中会显示进度条,包含(下载完成百分比、已经下载的字节、当前下载速度、剩余下载时间)。
例子2:使用wget -O 下载并以不同的文件名保存
下面的例子会下载一个文件并以名称CentOS-7-x86_64-Minimal-1708.iso保存
$ wget http://mirrors.sohu.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso
文件名称太长不方便运维人员操作,可以自定义文件名称。为了解决此问题,可以使用 -O 来指定一个文件名,如下代码:
$ wget -O CentOS7_4_mini.iso http://mirrors.sohu.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso
例子3:使用wget --limit-rate限速下载
运行wget指令下载文件时,默认会占用全部可能的带宽进行下载操作,当准备下载一个大文件时,可以根据需要进行限速控制。
$ wget -O CentOS7_4_mini.iso --limit-rate=600k http://mirrors.sohu.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso
例子4:断点续传
使用wget -c指令可以重新启动下载过程中断的文件
wget -c http://mirrors.sohu.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal01708.iso
下载大文件时,如果突然由于网络等原因终端,断点续传会非常有帮助,可以继续接着下载而不是重新下载一个文件,需要继续终端的下载可以使用 -c 选项。
例子5:使用wget -b 后台下载
在下载非常大的文件时,可以使用选项 -b 后台下载。
$wget -b http://mirrors.sohu.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal01708.iso
例子6:伪装代理名称下载
有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求,可以通过--user-agent选项伪装。
$wget --user-agent="Mozilla/5.0(Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://mirrors.sohu.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal01708.iso
例子7:测试下载连接
有定时下载任务时,应在预定时间测试下载连接是否有效,可以增加 --spider选项进行检查。
$ wget --spider URL
如果下载连接正确,会有"Remote file exists."信息提示。
大家可以在以下几种情况下使用spider选项:
1)定时下载之前进行检查;
2)间隔检测网站是否可用;
3)检查网站页面的死链接。
例子8:使用wget --tries增加重试次数
如果网络有问题或下载一个大文件,也有可能失败。wget默认重试20次连接下载文件。如果需要,可以使用--tries增加重试次数。
$ wget --tries=30 URL
例子9:使用wget -i 下载多个文件
首先,保存一份下载链接文件:
cat >iso_list.txt<<a
URL1
URL2
URL3
a
接着使用这个文件和选项-i下载:
$ wget -i iso_list.txt
例子9:使用wget做网站镜像
如下示例为下载整个网站到本地:
$ wget --mirror -p --convert-links -p ./LOCAL URL
--mirror: 设置这个参数来建立本地镜像;
-p: 下载所有html文件适合显示的元素;
--convert-links: 下载完成后,将文档连接都转换成本地的;
-P ./LOCAL-DIR: 保存所有的文件和目录到指定文件夹下。
例子10:过滤指定格式下载
下载站点时,不下载gif动画图片:
$ wget --reject-gif URL
例子11:使用wget -o 把下载信息存入日志文件
下载信息不直接显示在终端,而是在一个日志文件中,使用小写字母o,如下代码所示:
$ wget -o download.log URL
例子12:使用 wget -Q 限制总下载文件大小
下载的文件超过10MB而退出下载,可以使用如下指令:
$ wget -Q10m -i iso_list.txt
注意:此选项对单个文件下载不起作用,只能递归下载时才有效。
例子13:下载指定格式文件
可以在以下场景使用该功能:
1)下载一个网站的所有图片;
2)下载一个网站的所有视频;
3)下载一个网站的所有pdf文件。
$ wget -r -A.pdf URL
从一个网站下载所有pdf文件。
例子14:使用wget ftp下载
可以使用wget完成ftp链接的下载,匿名ftp下载类似于http下载。
$ wget ftp-url
如果要输入用户名和密码,则使用wget用户名和密码认证的ftp下载:
$ wget --ftp-user=USERNAME --ftp-password=PASSWORD URL