搜索
查看: 4871|回复: 0

Linux wget命令获取实例终极指南

[复制链接]

330

主题

177

回帖

1071

积分

vip用户

积分
1071

注册会员活跃会员热心会员

QQ
发表于 2020-11-12 19:54:04 | 显示全部楼层 |阅读模式
[md]>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`
[/md]
有没有参加CTF比赛的,一起组队啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表