最近为工作需要,经常需要到到国外的网站下载源码包。但我们都知道国内连外国的网站是多么的不稳定,常下到大半才给断掉,耗费时间不再谈,还需要考虑验证包正确性的问题。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服务器通信成功的次数。