最近研究了一下linux bt伺服器環境的搭建,需要在linux下製作bt種子並獲取bt種子資訊,整理了一下這個過程:
安裝:[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
安裝:#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 -a -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為做種的檔案或目錄名字。 Zabbix獲取並監控linux系統的程序名
最近需要監控執行在業務系統上的程序,要求是看到具體的程序名。通常監控程序一般可以使用內建的鍵值,也就是 proc.num 程序名,root,這個鍵值,但只能返回的是程序的數量,雖然效果上也能實現,但和預期的結果有些區別,而且也不直觀,尤其在同乙個程序數多的時候。下面說下獲取具體程序名的方法 1 ag...
Linux下CPP建立子程序並獲取PID後殺掉程序
pid t fork void intexecl const char path,const char arg,int kill pid t pid,int sig fork1 建立乙個子程序,一般情況子程序的pid和父程序的pid相差1,所在標頭檔案 include。這個函式的返回值很重要,在父程...
Linux下製作logo並顯示到開發板上
載自 我用的是ok6410開發板,自帶的兩個核心 2.6.32和3.0.1都測試通過 首先講一下製作logo的方法 linux logo製作工具 logomaker.tgz 4.7mb logomakers 可以讓你十分方便地製作linux logo檔案,它基於fedora 9平台開發並使用。其使用...