BT是BitTorrent(比特流)的簡稱,BT的特點是使用者下載下傳的同時,也在為其它使用者提供上傳,是以不會像FTP伺服器那樣随着使用者數的增加而導緻下載下傳速度降低。恰恰相反,對于BT下載下傳而言,下載下傳的人越多速度越快。 BT下載下傳首先在第一個共享端(或稱為Downloader)把一個檔案分成N個部分,A使用者可以從Downloader上随機下載下傳第M個部分,B使用者可以在Downloader伺服器随機下載下傳第K個部分。而A使用者的BT用戶端下載下傳程式會根據情況從B使用者下載下傳第K個部分,同樣的,B使用者也可以從A使用者下載下傳第M個部分,通過這種方式減輕伺服器端負荷,加快使用者的下載下傳速度, 例如,C使用者直接從伺服器下載下傳,速度可能隻有幾Kbps,而從A、B使用者處下載下傳,速度将快很多。使用者在下載下傳的同時,也在上傳檔案,在享受别人提供下載下傳服務的同時,每個使用者也同時在上載并貢獻自己的帶寬,是以造成使用BT下載下傳服務的人越多,大家的速度就越快。BT下載下傳的優越性就在這裡展現,下面簡要介紹下BitTorrent的安裝,感謝胡帥哥的精彩分享…
一:安裝Python
[root@jsb-ylw-5024 ~]# cd /usr/local/src/tarbag/
[root@jsb-ylw-5024 tarbag]# wgethttp://downloads.activestate.com/ActivePython/releases/2.7.0.2/ActivePython-2.7.0.2-linux-x86_64.tar.gz
[root@jsb-ylw-5024 tarbag]# tar -zxvf ActivePython-2.7.0.2-linux-x86_64.tar.gz -C ../software/
[root@jsb-ylw-5024 tarbag]# cd ../software/ActivePython-2.7.0.2-linux-x86_64/
[root@jsb-ylw-5024 ActivePython-2.7.0.2-linux-x86_64]# ./install.sh
Enter directory in which to install ActivePython. Leave blank and
press 'Enter' to use the default [/opt/ActivePython-2.7].
Install directory: /usr/local/python
()
Installing ActivePython to '/usr/local/python'...
Relocating dir-dependent files...
Pre-compiling .py files in the standard library...
ActivePython has been successfully installed to:
/usr/local/python
[root@jsb-ylw-5024 ActivePython-2.7.0.2-linux-x86_64]# ls /usr/local/python/
bin doc include lib share
[root@jsb-ylw-5024 ~]# env |grep PATH
PATH=/root/bin:/usr/local/mysql/bin:/usr/local/python/bin/:/usr/local/rlwarp/bin/:/usr/local/java/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/
bin:/usr/sbin:/usr/bin
二:下載下傳,安裝BitTorrent
[root@jsb-ylw-5024 tarbag]# wgethttp://download.bittorrent.com/dl/archive/BitTorrent-3.9.1.tar.gz
[root@jsb-ylw-5024 tarbag]# tar -zxvf BitTorrent-3.9.1.tar.gz -C ../software
[root@jsb-ylw-5024 tarbag]# cd ../software/BitTorrent-3.9.1
[root@jsb-ylw-5024 BitTorrent-3.9.1]# python2.7 setup.py install
[root@jsb-ylw-5024 BitTorrent-3.9.1]# ls /usr/local/python/bin/bt*
/usr/local/python/bin/btdownloadcurses.py /usr/local/python/bin/btlaunchmany.py /usr/local/python/bin/btrename.py
/usr/local/python/bin/btdownloadgui.py /usr/local/python/bin/btmaketorrentgui.py /usr/local/python/bin/btshowmetainfo.py
/usr/local/python/bin/btdownloadheadless.py /usr/local/python/bin/btmaketorrent.py /usr/local/python/bin/bttest.py
/usr/local/python/bin/btlaunchmanycurses.py /usr/local/python/bin/btreannounce.py /usr/local/python/bin/bttrack.py
三:啟動BT
[root@jsb-ylw-5024 ~]# /usr/local/python/bin/python2.7 /usr/local/python/bin/bttrack.py --port 6969 --dfile /tmp/bttrack.log &
[1] 22603
[root@jsb-ylw-5024 ~]# ps -ef |grep python
root 22670 22614 1 15:32 pts/1 00:00:00 /usr/local/python/bin/python2.7 /usr/local/python/bin/bttrack.py --port 6969 --dfile /tmp/bttrack.log
root 22679 22614 0 15:32 pts/1 00:00:00 grep python
[root@jsb-ylw-5024 ~]# netstat -ntpl |grep 6969
tcp 0 0 0.0.0.0:6969 0.0.0.0:* LISTEN 22670/python2.7
<a target="_blank" href="http://blog.51cto.com/attachment/201012/112616192.png"></a>
四:制作BT種子
[root@jsb-ylw-5024 ~]# /usr/local/python/bin/btmaketorrent.pyhttp://192.168.50.24:6969/announce /root/resoucre/ubuntu.pdf
[root@jsb-ylw-5024 ~]# mv /root/resoucre/ubuntu.pdf.torrent /www/
[root@jsb-ylw-5024 ~]# ln /root/resoucre/ubuntu.pdf /www/
[root@jsb-ylw-5024 ~]# ll /root/resoucre/ubuntu.pdf
-rwxr-xr-x 2 root root 60334729 10-25 15:36 /root/resoucre/ubuntu.pdf
[root@jsb-ylw-5024 ~]# /usr/local/python/bin/btlaunchmany.py --data_dir /root/resoucre/ --torrent_dir /www > /dev/null 2>&1 &
[2] 23354
[root@jsb-ylw-5024 ~]# ps -ef |grep python |grep -v 'grep'
root 22670 22614 0 15:32 pts/1 00:00:00 /usr/local/python/bin/python2.7 /usr/local/python/bin/bttrack.py --port 6969 --dfile /tmp/bttrack.log
root 23354 22614 0 15:42 pts/1 00:00:00 /usr/local/python/bin/python2.7 /usr/local/python/bin/btlaunchmany.py --data_dir /root/resoucre/ --torrent_dir /www
五:下載下傳測試
<a target="_blank" href="http://blog.51cto.com/attachment/201012/112640666.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201012/112701986.png"></a>
六:自動生成種子腳本
[root@jsb-ylw-5024 ~]# cat auto_bt_seed.sh
#!/bin/bash
#function: auto generate bt seed ...
#author: lw.yang
#version: V.1.0
MAKEBT=/usr/local/python/bin/btmaketorrent.py
DOMAIN=http://192.168.50.24:6969/announce
RESOURCE_DIR=/root/resource
BTSEED_DIR=/www
NUMBER=`ls $RESOURCE_DIR |grep -v resume |grep -v metainfo|wc -l`
CONTENT=`ls $RESOURCE_DIR |grep -v resume |grep -v metainfo > /tmp/1.txt`
for (( i=1; i<=$NUMBER; ii=i+1 ))
do
FILE=`sed -n "$i"p /tmp/1.txt`
if [ ! -f $BTSEED_DIR/$FILE.torrent ] ;then
$MAKEBT $DOMAIN $RESOURCE_DIR/$FILE
ln $RESOURCE_DIR/$FILE $BTSEED_DIR
/bin/mv $RESOURCE_DIR/$FILE.torrent $BTSEED_DIR
fi
done
<a target="_blank" href="http://blog.51cto.com/attachment/201012/112733126.png"></a>
本文轉自斬月部落格51CTO部落格,原文連結http://blog.51cto.com/ylw6006/458067如需轉載請自行聯系原作者
ylw6006