最近为工作需要,经常需要到到国外的网站下载源码包。但我们都知道国内连外国的网站是多么的不稳定,常下到大半才给断掉,耗费时间不再谈,还需要考虑验证包正确性的问题。wget是常规的下载工具,很好用,但线路不稳定时,速度比较慢。既然p2p大热,下载方式也好多,干脆换一种方式下载。

考虑到平时我都是通过命令行远程管理服务器的,在选择下载工具时,首要条件就是纯命令行运行,够用就好。这里介绍两个工具:多线程下载软件ProZilla和BT端CTorrent。

系统平台:红旗 DC Server 5.0 for x86 SP2。

一、多线程下载工具ProZilla

ProZilla用来代替不需要什么特殊功能时的wget是不错的选择。它支持多线程下载、断点续传等功能。有点类似Windows下的FlashGet。

1、下载

官方网站:http://prozilla.genesys.ro/

上面同时有ProzGUI和ProZilla两个工具,而ProzGUI的图形的支撑平台,我不要用到。

# wget http://prozilla.genesys.ro/downloads/prozilla/redhat/prozilla-1.3.7.4-1.src.rpm

2、编译和安装

它自带的.spec文件不符合红旗的rpm宏定义,需要修改一下:

# rpm -ivh prozilla-1.3.7.4-1.src.rpm

# vi /usr/src/asianux/SPECS/prozilla.spec

把原来CopyRight: GNU,改为:License: GNU即可。

# rpmbuild -bb /usr/src/asianux/SPECS/prozilla.spec

# rpm -ivh /usr/src/asianux/RPMS/i386/prozilla-1.3.7.4-1.i386.rpm

3、使用

配置文件在:/etc/prozilla.conf,默认打开4个线程。

使用非常简单,直接运行即可:

# proz http://dag.wieers.com/rpm/packages/clamav/clamav-0.92-1.rf.src.rpm

在线路环境不好的情况下,速度可获得几倍的提升的。

rpm和源码包下载:

二、BT下载工具CTorrent

CTorrent 是用C语言写的一个BT客户端。现在可以运行在多种Linux 版本。CTorrent是运行在命令行模式下的,这意味着它不需要任何图形组件。你可以通过远程访问来让它在后台运行。

CTorrent的官网是:http://ctorrent.sourceforge.net/。但其只开发到1.3.4,后续一个叫Dennis Holmes的人贡献颇多,他为CTorrent打了很多patch,然后重新发布,取名为Enhanced CTorrent。下面都是以该版本为准。

Enhanced CTorrent的官网是:http://www.rahul.net/dholmes/ctorrent/,当前的补丁是dnh3.2。

1、下载

你可以从官网上下载源码编译。而我还是喜欢rpm方式,故参考fc7的源码包,改了一个可以在红旗上使用的版本:ctorrent-1.3.4-1qk.dnh3.2.AX2.i386.rpm。

rpm和源码包下载:

2、安装

使用rpm即可完成安装。

# rpm -ivh /usr/src/asianux/RPMS/i386/ctorrent-1.3.4-1qk.dnh3.2.AX2.i386.rpm

3、使用

以下内容来自:http://www.sb123.org/669

举个例子:

比如我要将dzh2.torrent这个种子文件的内容下载到/home/BT/下,命令如下

# ctorrent -s /home/BT/dzh2/ -e 12 -C 32 -p 6881 /home/dzh2.torrent

CTorrent的命令行参数的意义:

引用

-h/-H:显示帮助命令

-x:只解码并显示种子文件信息,不下载。

-c:只检查已下载的数据,不下载。

-v:打开debug调试输出。

下载选项:

引用

-e int 下载完毕后的做种时间(单位:小时),默认为72小时。

-p port 绑定端口,默认为2706。

-s save_as 重命名下载的文件,若是下载的是多个文件,则sava_as是包含多文件的目录。

-C cache_size 缓存大小,默认为16MB。

-f 强制做种模式,不进行SHA1 HASH检查。

-b bf_filename piece位图文件名,详见BitField::SetReferFile()。

-M max_peers 客户端最多与多少个peer通信。

-m min_peers 客户端至少与多少个peer通信。

-n file_number 多文件下,选择哪个文件去下载(例如第二个文件file_number就为2)。

-D rate 限制最大下载速率(单位:KB/s)。

-U rate 限制最大上传速率(单位:KB/s)。

-P peer_id 客户端通信的ID,默认为-CD0102-。

下载数据文件示例:

# ctorrent -s new_filename -e 12 -C 32 -p 6881 eg.torrent

制作种子文件示例:

# ctorrent -t file_to_make.avi -s a.torrent -u protocol://address/announce

4、状态栏的含义

CTorrent运行时输出格式如下:

引用

$ / 1/10/40 [3/148/148] 2MB,1MB | 48,20K/s | 80,40K E:0,1

各项意义为:

引用

/:表明客户端正在工作的符号,以”- | /”循环。

1:种子数目。

10:客户端正在通信的非种子的peer数目。

40:tracker服务器知道的peer数,也是整个bt通信群的peer数。

3:客户端已经下载的piece数目。

148:数据文件全部的piece数目。

148:客户端可以得到的piece数目,若此数小于全部piece数目则不会下载到完整的数据。

2MB:客户端已经下载的数据量。

1MB:客户端正在上传的数据量。

48:客户端的平均下载速率(KB/s)。

20:客户端的平均上传速率(KB/s)。

80:客户端的即时下载速率(KB/s)。

40:客户端的即时上传速率(KB/s)。

0:客户端与tracker服务器通信失败的次数。

1:客户端与tracker服务器通信成功的次数。