最近研究了一下linux BT服务器环境的搭建,需要在linux下制作BT种子并获取BT种子信息,整理了一下这个过程:

制作BT种子软件下载地址:http://jaist.dl.sourceforge.net/project/mktorrent/mktorrent/1.0/mktorrent-1.0.tar.gz

安装:

[root@localhost src]# tar zxf mktorrent-1.0.tar.gz

[root@localhost src]# cd mktorrent-1.0

[root@localhost mktorrent-1.0]# make

[root@localhost mktorrent-1.0]# make install

[root@localhost ~]# which mktorrent

/usr/local/bin/mktorrent

需要python的bencode模块来获取BT种子信息,下载地址:https://pypi.python.org/packages/source/b/bencode/bencode-1.0.tar.gz

安装:

#tar -zxf bencode-1.0.tar.gz

#cd bencode-1.0.tar.gz

#python setup.py install

制作和验证的python脚本如下:#!/usr/bin/env python

# -*- coding: utf-8 -*-

import os, re, time, sys

import hashlib, bencode

file_name = 'bt_test.exe'

bt_source = '/data/updir/%s' % file_name

bt_name = '/data/source/%s.torrent' % file_name

if os.path.exists(bt_name):

os.remove(bt_name)

if os.path.exists(bt_source):

conm = "/usr/local/bin/mktorrent -v -p -l 18 -a http://bt1.text.cn/announce -a http://bt2.text.cn/announce -o %s %s" % (bt_name,bt_source)

res = os.popen(conm).readlines()[-1].strip()

if 'done' in res:

bt_path = {}

bt_file = open(bt_name, 'rb')

bt_info = bencode.bdecode(bt_file.read()).get('info')

bt_info_hash_hex = hashlib.sha1(bencode.bencode(bt_info)).hexdigest()

if os.path.isdir(bt_source):

bt_file_size = 0

for length in bt_info.get('files'):

bt_file_size = bt_file_size + int(length['length'])

bt_path['/'.join(length['path'])] = length['length']

else:

bt_file_size = bt_info.get('length')

bt_file_name = bt_info.get('name')

bt_path[bt_file_name]=bt_file_size

bt_file.close()

print bt_path

print "Create torrent success"

else:

print "Create torrent Error"

sys.exit()

else:

print "This source not find"

sys.exit()

file_name为做种的文件或目录名字。

linux怎么做bt种子文件,linux 制作BT种子并获取BT种子信息相关推荐

  1. linux dd目录生成iso文件,Linux下dd + mkisofs 制作可启动 img/iso 映像文件

    总的来说,制作镜像文件有三种方法,cp, cat, dd 和其它专用工具.cp ,cat 和 dd都可以从设备复制文件来创建镜像.而 dd 命令更为强大,可以通过指定块大小,块多少来直接创建镜像. I ...

  2. linux dd目录生成iso文件,linux/OSX中“DD”命令制作ISO镜像操作系统安装U盘

    linux或者OS X系统中,使用"dd"命令可以直接在终端命令行模式下,制作ISO镜像的系统安装盘. 一.linux系统以centOS7为例. sudo dd if=镜像路径 o ...

  3. linux将屏幕输出到文件,Linux命令执行的屏幕输出内容重定向到日志文件

    摘要: 作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 快速mark一下这个命令细节,免得以后使用又忘记了 大家都知道可以用echo来输出内容到 ...

  4. linux哪个模块允许保存文件,linux网络操作系统与实训 课后习题答案

    1.5 练习题 一.选择题 1. Linux 最早是由计算机爱好者 B 开发的. A. Richard Petersen B. Linus Torvalds C. Rob Pick D. Linux ...

  5. 使用mkiso向服务器传文件,Linux mkisofs 创建光盘镜像文件(Linux指令学习笔记)

    mkisofs命令 创建光盘文件的系统的命令是mkisofs.光盘系统有多种格式,利用Linux系统提供的光盘文件系统创建 命令mkisofs,可以创建多种iso9660文件系统. 我们一般不用mki ...

  6. linux 下写不了文件,linux下用root为什么写不了windows下的文件

    windows和Linux双系统怎样安装 毫无疑问,Windows是一个功能强大的操作系统,无论在兼容性方面,还是在易用性方面,都非常出色,但您有没有注意到市场上悄然兴起的Linux呢?作为一款出色的 ...

  7. linux删除指定大小的文件,Linux下删除空文件,删除指定大小的文件

    Linux下批量删除空文件(大小等于0的文件)的方法: find . -name "*" -type f -size 0c | xargs -n 1 rm -f 用这个还可以删除指 ...

  8. linux压缩指定时间的文件,Linux下压缩某个文件夹(文件夹打包)

    tar -zcvf /home/xahot.tar.gz /xahot tar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.ta ...

  9. linux用shell重命名文件,Linux shell - 重命名文件和文件夹(mv)

    如何在Linux下重命名多个文件 在Linux中,当你想要改变一个文件名,使用mv命令就好了.然而mv不能使用通配符重命名多个文件.可以用sed.awk或者与xargs结合使用来处理多个文件的情况.然 ...

最新文章

  1. windows server 2012 application control policy
  2. oracle 维护之Redo log file
  3. 相册服务器位置,王者荣耀游戏相册是什么 游戏相册开放服务器以及功能使用详细介绍...
  4. 20200207_Dontla_MBTI第二步基本分析报告((ISTJ))
  5. SpringBoot 使用WebMvcConfigurer处理请求
  6. CCNA 第二学期答案
  7. idea webapp目录404问题,war包方式运行
  8. 《科技之巅2》序——机器智能数据智能:工具之王
  9. C语言的叙述大小写字母e1相同,第1、2章C语言基础练习题
  10. 实现RPC就是这么简单
  11. Vue-注册全局组件的两种方法
  12. principle文本导入oracle,动效设计Principle:初识界面
  13. java怎么编译_java怎么编译运行?java有哪些编译方法?
  14. java mysql点赞功能_怎么实现一个点赞功能?
  15. 各地大厂名单(一二线城市知名公司)
  16. 携程实时大数据平台实践分享
  17. 路由器怎么设置WiFi短信认证?
  18. 测试小兵成长记:中庸之道
  19. Visual Studio项目属性配置
  20. Nuscenes SOTA!LOPR: 使用生成模型进行潜在occupancy预测

热门文章

  1. redis的nodejs客户端ioredis初识
  2. 计算机毕业设计:基于微信小程序的校园求职系统
  3. 利用临时二维码实现在电脑浏览器上的微信扫码登陆功能 - EasyWeChat版
  4. MonoRail - 简介
  5. 我们正处于并将长期处于从“艺工交叉”到“自我创造”的过渡阶段
  6. 馬斯洛:自我實現者,有16種共同特徵
  7. android 扫描二维码黑屏,android--zxing返回扫描界面出现黑屏的解决方案
  8. python四则运算器编写_0007 编程入门python语言之四则运算器
  9. 机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)
  10. C++中的long long和__int64类型