wget

(0 comments)

wget是Unix下一个非常好的下载工具,它能够支持断点续传,站点镜像等功能。目前,wget也推出了Windows平台的版本。

Wget启动时读取系统配置文件(/etc/wgetrc)和用户配置文件(~/.wgetrc),例如,添加代理服务器设置:

http_proxy=http://10.12.64.1:3128
ftp_proxy=http://10.12.64.1:3128

配置文件会覆盖系统环境变量中的代理服务器设置,如果代理服务器需要用户认证,添加以下参数:

--proxy-user=USER
--proxy-passwd=PASS

文件下载

Wget 支持下载断点续传功能,下载文件时添加 '-c' 参数,如下所示:

wget -c http://mydomain.com/dir/file_name

只扩展相对路径,对于只下载站点中的子目录非常有效,可以避免向整个主机的其他目录扩散。例如:

wget -L http://www.xys.org/~ppfl/

指定 wget 接受的文件扩展名,多个名称之间用逗号隔开。例如,只接受图片文件:

wget -A jpeg,jpg,gif

如果我们已经在一个HTML文档(或普通文本文档)中存储了所要下载的URL地址,可以让 wget 直接从该文件中提取下载地址,如下所示:

wget -i download.txt

Wget 还不支持真正的多线程,但是如果你要下载多个文件时,'-b' 参数可以同时启动多个进程。

for x in `cat urlist` 
do 
wget -b $x 
done 

站点镜像

递归下载目录以及子目录下的所有文件,'-l' 参数设置递归级数,如下所示:

wget -b -r -l1  http://mydomain.com/incoming/

镜像站点使用 '-m' 参数,实际上相当于 '-r -N -l inf –no-remove-listing',如下所示:

wget -m -np http://mydomain.com/incoming/

如果不希望下载图片和压缩文件等,排除指定扩展名的文件,如下所示:

wget -m -np --R=gif,jpeg,jpg,zip,gz,bz2,exe http://mydomain.com/incoming/

密码认证

Wget 支持需要密码认证的FTP服务器,如下所示:

wget ftp://username:password@mydomain.com/dir/file_name

下载FTP时,也支持递归目录,如下所示:

wget -r ftp://username:password@mydomain.com/dir/file_name

Wget支持HTTP认证,如下所示:

wget --no-check-certificate https://user:passwd@mydomain.com/dir/file_name

任务管理

下载大文件时,一般使用 nohup wget 命令方式下载。但是如果要暂停下载该怎么办呢?

暂停进程:

$ killall -SIGTSTP wget (相当于^Z) 
或
$ killall -SIGSTOP wget 

恢复进程

$ killall -SIGCONT wget 

当然也可以直接杀掉进程,然后再重新启动下载(续传)。但是如果进程是别人启的,或则忘记链接,就只能使用上面的方式啦。

当网络状态非常不好时,如果要在客户端启动 wget 来下载文件,Telnet 和 SSH 方式经常会中断,解决的方法是在客户端启动后台进程方式下载文件。

wget -b -c -t 0 --retry-connrefused http://mydomain.com/dir/file_name
Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required