Linux wget命令获取实例终极指南
>Linux wget是一个获取文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要获取一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器获取到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接获取到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点获取功能,同时支持FTP和HTTP获取方式,支持代理服务器和设置起来方便简单。下面我们以实例的形式说明怎么使用wget。### 1、使用 wget 获取单个文件
以下的例子是从网络获取一个文件并保存在当前目录
`wget http://cn.wordpress.org/wordpress-3.1-zh_CN.zip`
在获取的过程中会显示进度条,包含(获取完成百分比,已经获取的字节,当前获取速度,剩余获取时间)。
### 2、使用 wget -O 获取并以不同的文件名保存
wget 默认会以最后一个符合“/”的后面的字符来命令,对于动态链接的获取通常文件名会不正确。 错误:下面的例子会获取一个文件并以名称 download.php?id=1080 保存
`wget http://www.zhumaohai.com/download?id=1`
即使获取的文件是 zip 格式,它仍然以 download.php?id=1080 命令。 正确:为了解决这个问题,我们可以使用参数-O 来指定一个文件名:
`wget -O wordpress.zip http://www.zhumaohai.com/download.php?id=1080`
### 3、使用 wget --limit -rate 限速获取
当你执行 wget 的时候,它默认会占用全部可能的宽带获取。但是当你准备获取一个大文件,而你还需要获取其它文件时就有必要限速了。
`wget --limit-rate=300k http://cn.wordpress.org/wordpress-3.1-zh_CN.zip`
### 4、使用 wget -c 断点续传
使用 wget -c 重新启动获取中断的文件:
`wget -c http://cn.wordpress.org/wordpress-3.1-zh_CN.zip`
对于我们获取大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着获取而不是重新获取一个文件。需要继续中断的获取时可以使用-c 参数。
### 5、使用 wget -b 后台获取
对于获取非常大的文件的时候,我们可以使用参数-b 进行后台获取。
```
wget -b http://cn.wordpress.org/wordpress-3.1-zh_CN.zip
Continuing in background, pid 1840.
Output will be written to `wget-log‘。
```
你可以使用以下命令来察看获取进度
`tail -f wget-log`
### 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"
```
### 7、使用 wget --spider 测试获取链接
当你打算进行定时获取,你应该在预定时间测试获取链接是否有效。我们可以增加--spider 参数进行检查。
`wget --spider URL`
如果获取链接正确,将会显示
```
wget --spider URL
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response. 200 OK Length: unspecified [text/html] Remote file exists and could contain further links, but recursion is disabled -- not retrieving.
```
这保证了获取能在预定的时间进行,但当你给错了一个链接,将会显示如下错误
`wget --spider url`
```
Spider mode enabled.
Check if remote file exists. HTTP request sent, awaiting response.。。 404 Not Found Remote file does not exist -- broken link!!!
```
你可以在以下几种情况下使用 spider 参数:
* 7.1 定时获取之前进行检查
* 7.2 间隔检测网站是否可用
* 7.3 检查网站页面的死链接
### 8、使用 wget --tries 增加重试次数
如果网络有问题或获取一个大文件也有可能失败。wget 默认重试 20 次连接获取文件。如果需要,你可以使用--tries 增加重试次数。
`wget --tries=40 URL`
### 9、使用 wget -i 获取多个文件
首先,保存一份获取链接文件
`cat>filelist.txt url1 url2 url3 url4`
接着使用这个文件和参数-i 获取
`wget -i filelist.txt`
### 10、使用 wget --mirror 镜像网站
下面的例子是获取整个网站到本地。
`wget --mirror -p --convert-links -P ./LOCAL URL`
* --miror:开户镜像获取
* -p:获取所有为了 HTML 页面显示正常的文件
* --convert-links:获取后,转换成本地的链接
* -P ./LOCAL:保存所有文件和目录到本地指定目录
### 11、使用 wget --reject 过滤指定格式获取
你想获取一个网站,但你不希望获取图片,你可以使用以下命令。
`wget --reject=gif url`
### 12、使用 wget -o 把获取信息存入日志文件
你不希望获取信息直接显示在终端而是在一个日志文件,可以使用以下命令:
`wget -o download.log URL`
### 13、使用 wget -Q 限制总获取文件大小
当你想要获取的文件超过 5M 而退出获取,你可以使用以下命令:
`wget -Q5m -i filelist.txt`
注意:这个参数对单个文件获取不起作用,只能递归获取时才有效。
### 14、使用 wget -r -A 获取指定格式文件
可以在以下情况使用该功能
* 获取一个网站的所有图片
* 获取一个网站的所有视频
* 获取一个网站的所有 PDF 文件
`wget -r -A.pdf url`
### 15、使用 wget FTP 获取
你可以使用 wget 来完成 ftp 链接的获取。 使用 wget 匿名 ftp 获取
`wget ftp-url`
使用 wget 用户名和密码认证的 ftp 获取
`wget --ftp-user=USERNAME --ftp-password=PASSWORD url`
页:
[1]