在 FreeBSD 5.4/OpenBSD 3.8 上安装 BT Server
2006-06-14 16:07
323 查看
注:本文已经增加了一小部分内容,但因为论坛上修改帖子的排版比较不方便,所以***成了PDF文档,大家可以下载了再看。该页文档不再更新,只更新附件中的PDF文档(如果还有内容要增删的话)。
http://bbs.chinaunix.net/viewthread.php?tid=670780&extra=page%3D1
也可直接从www.bsdchina.org上下载:
http://www.bsdchina.org/articles/openbsd/bibby/bt_server_bibby-2005.12.17.pdf
Author : MichaelBibby ( michaelbibby # gmail.com )
Date : 2005.12.17
欢迎转载,但请保留以上作者信息。该文的PDF文档可在论坛下载:
http://bbs.chinaunix.net/viewthread.php?tid=670780&extra=page%3D1
软件BitTorrent同时提供了tracker和downloader工具,本文要讲述的就是使用它来做为BT Server。
关于BitTorrent,请访问它的官方主页:
http://www.bittorrent.com/
另:在阅读本文前,强烈建议看完官方的文档 -- ‘File Server's Guide':
http://www.bittorrent.com/guide.html
内容:
1:安装BitTorrent;
2:使用bttrack.py、btdownload*.py、btmaketorrent.py ;
3:修改bttrack.py,获取PID并将其写入'/var/run/bttrack.pid';
4:添加'/usr/local/etc/rc.d/bttrack.sh'脚本;
5:修改/etc/rc.conf,为bttrack.sh添加entry;
详细步骤:
1:安装BitTorrent;
BitTorrent已经包含在FB的ports/目录树中,建议通过ports安装。具体位置是:
/usr/ports/net/py-bittorrent
如果不修改Makefile的话,默认会装上很多东西,比如cario、pygtk等等,有些可能是
你不需要的,那就自动动手吧。
OpenBSD中安装的BitTorrent比较干净,只安装几个基本的依赖包。
安装好后,bttrack.py等工具都放在'/usr/local/bin/'下了。
2:使用bttrack.py、btdownload*.py、btmaketorrent.py ;
①:使用'/usr/local/bin/bttrack.py'做为Tracker;
一般的用法是:
# bttrack.py --port 6969
--dfile /var/log/bttrack/dlinfo
--allowed_dir /home/torrents
--show_infopage 0
--logfile /var/log/bttrack/bttrack.log
这里只是加入了几个常用的参数,更多的参数可以通过不带参数的'bttrack.py'命令执行得到。
简单解释一下几个参数的含义:
--port 6969
表示bttrack运行在6969端口。所以在做防火墙规则的时候要注意打开它。
--dfile /var/log/bttrack/dlinfo
表示将当前下载信息存储在'/var/log/bttrack/dlinfo'文件中。
--allowed_dir /home/torrents
表示在服务器上只允许该目录下的'torrent'文件连接BT Tracker。在非该目录
下载时会报错。
--show_infopage 0
表示是否打开info页面。也就是在访问服务器的6969端口时能否看到Tracker的当前信息。
--logfile /var/log/bttrack/bttrack.log
表示将Tracker的日志信息写入 '/var/log/bttrack/bttrack.log'中。
②:使用'btdownload*.py'上传/下载;
btdownload*.py实际上指的是两个下载工具:
/usr/local/bin/btdownloadheadless.py
/usr/local/bin/btdownloadcurses.py
这两个工具的参数都是一样的,只是界面不一样而已(具体的细节,大家一用便知):
$ btdownloadcurses.py --max_upload_rate 0 file.torrent
这是btdownloadheadless.py下载时的截图:
btdownloadheadless.py 默认是每隔0.5秒便滚动一则信息,图片中内容就表示完整的一则信息。
可以通过'--display_interval '来指定间隔的时间。如果通过SSH连接上远程服务器使用这个
命令,间隔的时间越短,就需要传送越多的数据信息,从服务器传到你机器上的网络流量就越大。
btdownloadcurses.py下载时的截图:
btdownloadcurses.py在下载时不会象btdownloadheadless.py一样每隔一段时间就滚动显示一则
信息,它只是动态地显示进度 'progress'。所以在使用上,个人觉得更舒服些。
这两个下载工具有一个比较重要的参数:'--max_upload_rate'。
做为BT Server,上传给别人的数据当然要控制一下,太小了不行,太大了也需要考虑。默认的
上传速率是20K/S。显然,做为服务器,这个数值是不合适的。
设置为'0',则表示不限制上传速率。
③:使用'btmaketorrent.py'***torrent文件;
实际上,BitTorrent也提供了'btmaketorrentgui.py'工具,这是一个btmaketorrent.py的GUI
实现,使***torrent文件更为直观。但是考虑到服务器上没有安装X-Window,所以这里将它
略去不提。
最简单和常用的使用是:
$ btmaketorrent.py http://btfans.3322.org:8080/announce file
这里的'http://btfans.3322.org:8080/announce'表示BT服务器的Tracker地址,也就是通常所
说的'announce url'。强烈建议在***torrent时,使用域名做为'announce url',而不是IP。
这里的'file',可以是一个文件,也可以是以空格隔开的几个文件,还可以是一个目录。
另外,btmaketorrent.py还提供了四个选项。其中这两个最常用到:
--target
是指生成的torrent文件的名称。
--filesystem_encoding
指的是文件的字符编码。如果为空的话,会进行自动检测。但是如果使用的是
2.3版本以下的python则无法进行自动检测。
3:修改bttrack.py,获取PID并将其写入'/var/run/bttrack.pid';
为了使bttrack.py能象apache、mysql一样,在系统启动时做为一个daemon程序自动执行,我修改了'/usr/local/bin/bttrack.py'文件,并写了'/usr/local/etc/rc.d/bttrack.sh'文件来实现这
一功能。修改'/usr/local/bin/bttrack.py'文件是为了获得bttrack.py启动之后的PID,并将PID
写入'/var/run/bttrack.pid'文件中,这样便于停止bttrack。
原始的'/usr/local/bin/bttrack.py'文件后半部分是这样的:
from sys import argv
from BitTorrent.track import track
if __name__ == '__main__':
track(argv[1:])
修改后是这样的:
from sys import argv
from BitTorrent.track import track
import os
if __name__ == '__main__':
file('/var/run/bttrack.pid', 'w').write(str(os.getpid()))
track(argv[1:])
在此要特别感谢CU Python版的'limodou'大哥,是他帮忙搞定了获取PID并将其写入到某个文件的。
4:添加'/usr/local/etc/rc.d/bttrack.sh'脚本;
该脚本使用'bash’作为语法解释shell。
在不传递参数的情况下,默认行为是启动bttrack。另外,象大多数rc脚本一样,可以向该脚本传递
两个参数:
start | stop
----------- Script : /usr/local/etc/rc.d/bttrack.sh ------------
#!/usr/local/bin/bash
# Author : MichaelBibby ( michaelbibby # gmail.com )
# Date : 2005/12/15
# Purpose : To start '/usr/local/bin/bttrack.py' at system startup.
BTTRACK='/usr/local/bin/bttrack.py'
BTTRACK_ARGS='--port 6969 --dfile /var/log/bttrack/dlinfo --allowed_dir /home/torrents --show_infopage 0 --logfile /var/log/bttrack/bttrack.log'
BTTRACK_PID_FILE='/var/run/bttrack.pid'
BTTRACK_PID=$(cat $BTTRACK_PID_FILE)
function USAGE()
{
echo -e " Usage : $0 [start|stop]"
}
# ---- Main ------
if [ X$# == X0 ]
then
$BTTRACK $BTTRACK_ARGS &
elif [ X$# == X1 ]
then
case $1 in
start) echo -ne "Starting BT tracker ..."
$BTTRACK $BTTRACK_ARGS &
echo -ne " Done."
;;
stop) echo -ne "Stop BT tracker ..."
kill $BTTRACK_PID
echo -ne " Done."
;;
*) USAGE
;;
esac
else
USAGE
fi
# ----- Done ----
-------------- End Script : /usr/local/etc/rc.d/bttrack.sh -------------
5:修改/etc/rc.conf,为bttrack.sh添加entry;
为了在系统启动时执行bttrack,在添加了'/usr/local/etc/rc.d/bttrack.sh'脚本后,还
需要在'/etc/rc.conf'中为它添加一个entry:
bttrack_enable=”YES”
这样就OK了。
http://bbs.chinaunix.net/viewthread.php?tid=670780&extra=page%3D1
也可直接从www.bsdchina.org上下载:
http://www.bsdchina.org/articles/openbsd/bibby/bt_server_bibby-2005.12.17.pdf
Author : MichaelBibby ( michaelbibby # gmail.com )
Date : 2005.12.17
欢迎转载,但请保留以上作者信息。该文的PDF文档可在论坛下载:
http://bbs.chinaunix.net/viewthread.php?tid=670780&extra=page%3D1
软件BitTorrent同时提供了tracker和downloader工具,本文要讲述的就是使用它来做为BT Server。
关于BitTorrent,请访问它的官方主页:
http://www.bittorrent.com/
另:在阅读本文前,强烈建议看完官方的文档 -- ‘File Server's Guide':
http://www.bittorrent.com/guide.html
内容:
1:安装BitTorrent;
2:使用bttrack.py、btdownload*.py、btmaketorrent.py ;
3:修改bttrack.py,获取PID并将其写入'/var/run/bttrack.pid';
4:添加'/usr/local/etc/rc.d/bttrack.sh'脚本;
5:修改/etc/rc.conf,为bttrack.sh添加entry;
详细步骤:
1:安装BitTorrent;
BitTorrent已经包含在FB的ports/目录树中,建议通过ports安装。具体位置是:
/usr/ports/net/py-bittorrent
如果不修改Makefile的话,默认会装上很多东西,比如cario、pygtk等等,有些可能是
你不需要的,那就自动动手吧。
OpenBSD中安装的BitTorrent比较干净,只安装几个基本的依赖包。
安装好后,bttrack.py等工具都放在'/usr/local/bin/'下了。
2:使用bttrack.py、btdownload*.py、btmaketorrent.py ;
①:使用'/usr/local/bin/bttrack.py'做为Tracker;
一般的用法是:
# bttrack.py --port 6969
--dfile /var/log/bttrack/dlinfo
--allowed_dir /home/torrents
--show_infopage 0
--logfile /var/log/bttrack/bttrack.log
这里只是加入了几个常用的参数,更多的参数可以通过不带参数的'bttrack.py'命令执行得到。
简单解释一下几个参数的含义:
--port 6969
表示bttrack运行在6969端口。所以在做防火墙规则的时候要注意打开它。
--dfile /var/log/bttrack/dlinfo
表示将当前下载信息存储在'/var/log/bttrack/dlinfo'文件中。
--allowed_dir /home/torrents
表示在服务器上只允许该目录下的'torrent'文件连接BT Tracker。在非该目录
下载时会报错。
--show_infopage 0
表示是否打开info页面。也就是在访问服务器的6969端口时能否看到Tracker的当前信息。
--logfile /var/log/bttrack/bttrack.log
表示将Tracker的日志信息写入 '/var/log/bttrack/bttrack.log'中。
②:使用'btdownload*.py'上传/下载;
btdownload*.py实际上指的是两个下载工具:
/usr/local/bin/btdownloadheadless.py
/usr/local/bin/btdownloadcurses.py
这两个工具的参数都是一样的,只是界面不一样而已(具体的细节,大家一用便知):
$ btdownloadcurses.py --max_upload_rate 0 file.torrent
这是btdownloadheadless.py下载时的截图:
btdownloadheadless.py 默认是每隔0.5秒便滚动一则信息,图片中内容就表示完整的一则信息。
可以通过'--display_interval '来指定间隔的时间。如果通过SSH连接上远程服务器使用这个
命令,间隔的时间越短,就需要传送越多的数据信息,从服务器传到你机器上的网络流量就越大。
btdownloadcurses.py下载时的截图:
btdownloadcurses.py在下载时不会象btdownloadheadless.py一样每隔一段时间就滚动显示一则
信息,它只是动态地显示进度 'progress'。所以在使用上,个人觉得更舒服些。
这两个下载工具有一个比较重要的参数:'--max_upload_rate'。
做为BT Server,上传给别人的数据当然要控制一下,太小了不行,太大了也需要考虑。默认的
上传速率是20K/S。显然,做为服务器,这个数值是不合适的。
设置为'0',则表示不限制上传速率。
③:使用'btmaketorrent.py'***torrent文件;
实际上,BitTorrent也提供了'btmaketorrentgui.py'工具,这是一个btmaketorrent.py的GUI
实现,使***torrent文件更为直观。但是考虑到服务器上没有安装X-Window,所以这里将它
略去不提。
最简单和常用的使用是:
$ btmaketorrent.py http://btfans.3322.org:8080/announce file
这里的'http://btfans.3322.org:8080/announce'表示BT服务器的Tracker地址,也就是通常所
说的'announce url'。强烈建议在***torrent时,使用域名做为'announce url',而不是IP。
这里的'file',可以是一个文件,也可以是以空格隔开的几个文件,还可以是一个目录。
另外,btmaketorrent.py还提供了四个选项。其中这两个最常用到:
--target
是指生成的torrent文件的名称。
--filesystem_encoding
指的是文件的字符编码。如果为空的话,会进行自动检测。但是如果使用的是
2.3版本以下的python则无法进行自动检测。
3:修改bttrack.py,获取PID并将其写入'/var/run/bttrack.pid';
为了使bttrack.py能象apache、mysql一样,在系统启动时做为一个daemon程序自动执行,我修改了'/usr/local/bin/bttrack.py'文件,并写了'/usr/local/etc/rc.d/bttrack.sh'文件来实现这
一功能。修改'/usr/local/bin/bttrack.py'文件是为了获得bttrack.py启动之后的PID,并将PID
写入'/var/run/bttrack.pid'文件中,这样便于停止bttrack。
原始的'/usr/local/bin/bttrack.py'文件后半部分是这样的:
from sys import argv
from BitTorrent.track import track
if __name__ == '__main__':
track(argv[1:])
修改后是这样的:
from sys import argv
from BitTorrent.track import track
import os
if __name__ == '__main__':
file('/var/run/bttrack.pid', 'w').write(str(os.getpid()))
track(argv[1:])
在此要特别感谢CU Python版的'limodou'大哥,是他帮忙搞定了获取PID并将其写入到某个文件的。
4:添加'/usr/local/etc/rc.d/bttrack.sh'脚本;
该脚本使用'bash’作为语法解释shell。
在不传递参数的情况下,默认行为是启动bttrack。另外,象大多数rc脚本一样,可以向该脚本传递
两个参数:
start | stop
----------- Script : /usr/local/etc/rc.d/bttrack.sh ------------
#!/usr/local/bin/bash
# Author : MichaelBibby ( michaelbibby # gmail.com )
# Date : 2005/12/15
# Purpose : To start '/usr/local/bin/bttrack.py' at system startup.
BTTRACK='/usr/local/bin/bttrack.py'
BTTRACK_ARGS='--port 6969 --dfile /var/log/bttrack/dlinfo --allowed_dir /home/torrents --show_infopage 0 --logfile /var/log/bttrack/bttrack.log'
BTTRACK_PID_FILE='/var/run/bttrack.pid'
BTTRACK_PID=$(cat $BTTRACK_PID_FILE)
function USAGE()
{
echo -e " Usage : $0 [start|stop]"
}
# ---- Main ------
if [ X$# == X0 ]
then
$BTTRACK $BTTRACK_ARGS &
elif [ X$# == X1 ]
then
case $1 in
start) echo -ne "Starting BT tracker ..."
$BTTRACK $BTTRACK_ARGS &
echo -ne " Done."
;;
stop) echo -ne "Stop BT tracker ..."
kill $BTTRACK_PID
echo -ne " Done."
;;
*) USAGE
;;
esac
else
USAGE
fi
# ----- Done ----
-------------- End Script : /usr/local/etc/rc.d/bttrack.sh -------------
5:修改/etc/rc.conf,为bttrack.sh添加entry;
为了在系统启动时执行bttrack,在添加了'/usr/local/etc/rc.d/bttrack.sh'脚本后,还
需要在'/etc/rc.conf'中为它添加一个entry:
bttrack_enable=”YES”
这样就OK了。
相关文章推荐
- [置顶] 龙芯2f笔记本- openbsd5.4安装手记
- FreeBSD 5.4中文安装手册,新手必看
- freebsd 8.2 安装 php5.4 解决
- 我的FreeBSD5.4安装配置过程笔记录(新手参考)第1/5页
- FreeBSD5.4系统快安装步骤(原版).txt [转]
- 基于FreeBSD5.4全能服务器安装(dns,ftp,apache,qmail)
- freeBSD与openBSD下SNMP服务的安装与配置
- FreeBSD安装小记
- VirtualBox中安装FreeBsd 7.2后X鼠标键盘无响应解决
- freeBSD 安装流程
- 在FreeBSD下安装PHP5
- openBSD4.1安装手记(图解)
- FreeBSD下安装MySQL+Apache+PHP新手指南
- FreeBSD服务器的安装与优化
- freebsd 安装教程
- Mac OSX 10.9.5, PHP5.4 安装 memcached
- 安装 PHP 5.4 成功 https://webtatic.com/packages/php54/
- Android4.4——Ubuntu 12.04的make3.8、gcc-4.4.7和g++-4.4.7安装方法
- [导入]FreeBSD邮件系统安装 Step by Step