linux怎么做bt种子文件,linux 制作BT种子并获取BT种子信息
最近研究了一下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种子信息相关推荐
- linux dd目录生成iso文件,Linux下dd + mkisofs 制作可启动 img/iso 映像文件
总的来说,制作镜像文件有三种方法,cp, cat, dd 和其它专用工具.cp ,cat 和 dd都可以从设备复制文件来创建镜像.而 dd 命令更为强大,可以通过指定块大小,块多少来直接创建镜像. I ...
- linux dd目录生成iso文件,linux/OSX中“DD”命令制作ISO镜像操作系统安装U盘
linux或者OS X系统中,使用"dd"命令可以直接在终端命令行模式下,制作ISO镜像的系统安装盘. 一.linux系统以centOS7为例. sudo dd if=镜像路径 o ...
- linux将屏幕输出到文件,Linux命令执行的屏幕输出内容重定向到日志文件
摘要: 作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 快速mark一下这个命令细节,免得以后使用又忘记了 大家都知道可以用echo来输出内容到 ...
- linux哪个模块允许保存文件,linux网络操作系统与实训 课后习题答案
1.5 练习题 一.选择题 1. Linux 最早是由计算机爱好者 B 开发的. A. Richard Petersen B. Linus Torvalds C. Rob Pick D. Linux ...
- 使用mkiso向服务器传文件,Linux mkisofs 创建光盘镜像文件(Linux指令学习笔记)
mkisofs命令 创建光盘文件的系统的命令是mkisofs.光盘系统有多种格式,利用Linux系统提供的光盘文件系统创建 命令mkisofs,可以创建多种iso9660文件系统. 我们一般不用mki ...
- linux 下写不了文件,linux下用root为什么写不了windows下的文件
windows和Linux双系统怎样安装 毫无疑问,Windows是一个功能强大的操作系统,无论在兼容性方面,还是在易用性方面,都非常出色,但您有没有注意到市场上悄然兴起的Linux呢?作为一款出色的 ...
- linux删除指定大小的文件,Linux下删除空文件,删除指定大小的文件
Linux下批量删除空文件(大小等于0的文件)的方法: find . -name "*" -type f -size 0c | xargs -n 1 rm -f 用这个还可以删除指 ...
- linux压缩指定时间的文件,Linux下压缩某个文件夹(文件夹打包)
tar -zcvf /home/xahot.tar.gz /xahot tar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.ta ...
- linux用shell重命名文件,Linux shell - 重命名文件和文件夹(mv)
如何在Linux下重命名多个文件 在Linux中,当你想要改变一个文件名,使用mv命令就好了.然而mv不能使用通配符重命名多个文件.可以用sed.awk或者与xargs结合使用来处理多个文件的情况.然 ...
最新文章
- windows server 2012 application control policy
- oracle 维护之Redo log file
- 相册服务器位置,王者荣耀游戏相册是什么 游戏相册开放服务器以及功能使用详细介绍...
- 20200207_Dontla_MBTI第二步基本分析报告((ISTJ))
- SpringBoot 使用WebMvcConfigurer处理请求
- CCNA 第二学期答案
- idea webapp目录404问题,war包方式运行
- 《科技之巅2》序——机器智能数据智能:工具之王
- C语言的叙述大小写字母e1相同,第1、2章C语言基础练习题
- 实现RPC就是这么简单
- Vue-注册全局组件的两种方法
- principle文本导入oracle,动效设计Principle:初识界面
- java怎么编译_java怎么编译运行?java有哪些编译方法?
- java mysql点赞功能_怎么实现一个点赞功能?
- 各地大厂名单(一二线城市知名公司)
- 携程实时大数据平台实践分享
- 路由器怎么设置WiFi短信认证?
- 测试小兵成长记:中庸之道
- Visual Studio项目属性配置
- Nuscenes SOTA!LOPR: 使用生成模型进行潜在occupancy预测
热门文章
- redis的nodejs客户端ioredis初识
- 计算机毕业设计:基于微信小程序的校园求职系统
- 利用临时二维码实现在电脑浏览器上的微信扫码登陆功能 - EasyWeChat版
- MonoRail - 简介
- 我们正处于并将长期处于从“艺工交叉”到“自我创造”的过渡阶段
- 馬斯洛:自我實現者,有16種共同特徵
- android 扫描二维码黑屏,android--zxing返回扫描界面出现黑屏的解决方案
- python四则运算器编写_0007 编程入门python语言之四则运算器
- 机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)
- C++中的long long和__int64类型