结合P2P软件使用Ansible分发大文件
来源:互联网 发布:用的什么java工具 编辑:程序博客网 时间:2024/06/05 16:42
1
ansible all -m copy -a
"src=/opt/software/logstash/logstash-agent-2.3.3-fb.centos6.x86_64.rpm dest=/opt/software/logstash"
1
2
3
wget https:
//github
.com
/lg/murder/archive/master
.zip -O murder.zip
unzip murder.zip
cd
murder-master
1
python murder_tracker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#! /bin/sh
#
# Start/Stop murder-tracker
#
# chkconfig: 345 99 99
# description: murder-tracker
# processname: murder-tracker
if
[ -f
/etc/rc
.d
/init
.d
/functions
];
then
.
/etc/rc
.d
/init
.d
/functions
fi
name=
"murder-tracker"
murder_tracker_bin=
"/opt/app/murder/dist/murder_tracker.py"
murder_tracker_log=
"/opt/logs/murder/murder_tracker.log"
murder_tracker_data=
"/opt/data/murder/tracker_data"
murder_user=murder
find_tracker_process () {
PID=`
ps
-ef |
grep
murder_tracker |
grep
python |
grep
-
v
$0|
grep
-
v
grep
|
grep
-
v
sh|
grep
-
v
root|
awk
'{ print $2 }'
`
}
start () {
getent
passwd
$murder_user >
/dev/null
||
useradd
-r -s
/sbin/nologin
$murder_user
LOG_DIR=`
dirname
${murder_tracker_log}`
DATA_DIR=`
dirname
${murder_tracker_data}`
if
[ ! -d $LOG_DIR ];
then
echo
-e
"\e[35mLog dir ${LOG_DIR} doesn't exist. Creating\e[0m"
mkdir
-p $LOG_DIR
fi
if
[ ! -d $DATA_DIR ];
then
echo
-e
"\e[35mLog dir ${DATA_DIR} doesn't exist. Creating\e[0m"
mkdir
-p $DATA_DIR
fi
chown
-R $murder_user:$murder_user $DATA_DIR $LOG_DIR
find_tracker_process
if
[
"$PID"
!=
""
];
then
echo
-e
"\e[35m$name is already running!\e[0m"
else
daemon --user $murder_user
nohup
python $murder_tracker_bin >
/dev/null
2>&1 &
echo
-e
"\e[35mStarting $name Done\e[0m"
fi
}
stop () {
find_tracker_process
if
[
"$PID"
!=
""
];
then
echo
-e
"\e[35mStopping $name\e[0m"
kill
$PID
else
echo
-e
"\e[35m$name is not running yet\e[0m"
fi
}
case
$1
in
start)
start
;;
stop)
stop
exit
0
;;
reload)
stop
sleep
2
start
;;
restart)
stop
sleep
2
start
;;
status)
find_tracker_process
if
[
"$PID"
!=
""
];
then
echo
-e
"\e[35m$name is running: $PID\e[0m"
exit
0
else
echo
-e
"\e[35m$name is not running\e[0m"
exit
1
fi
;;
*)
echo
-e
"\e[35mUsage: $0 {start|stop|restart|reload|status|configtest}\e[0m"
RETVAL=1
esac
exit
0
1
python murder_make_torrent.py deploy.
tar
.gz tracker.twitter.com:8998 deploy.torrent
1
python murder_client.py seed deploy.torrent deploy.
tar
.gz 172.28.2.200
1
python murder_client.py peer deploy.torrent deploy.
tar
.gz 172.28.2.220
1
# ansible 172.168.2.171 -m service -a "name=murder-tracker state=started"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#! /bin/sh
#
# Start/Stop murder-seeder
#
# chkconfig: 345 99 99
# description: murder-seeder
# processname: murder-seeder
if
[ -f
/etc/rc
.d
/init
.d
/functions
];
then
.
/etc/rc
.d
/init
.d
/functions
fi
name=
"murder-seeder"
murder_seeder_data=
"/opt/data/murder"
murder_seeder_log=
"/opt/logs/murder/murder_seeder.log"
murder_seeder_bin=
"/opt/app/murder/dist/murder_client.py"
murder_make_torrent_bin=
"/opt/app/murder/dist/murder_make_torrent.py"
murder_seeder_conf=
"/opt/app/murder/dist/seeder.conf"
deploy_file=$(
awk
-F=
'/deploy_file/{print $2}'
/opt/app/murder/dist/seeder
.conf)
torrent_file=$(
awk
-F=
'/torrent_file/{print $2}'
/opt/app/murder/dist/seeder
.conf)
tracker_ip=$(
awk
-F=
'/tracker_ip/{print $2}'
/opt/app/murder/dist/seeder
.conf)
local_ip=$(
awk
-F=
'/local_ip/{print $2}'
/opt/app/murder/dist/seeder
.conf)
murder_user=murder
find_seeder_process () {
PID=`
ps
-ef |
grep
murder_client|
grep
seed |
grep
python |
grep
-
v
$0|
grep
-
v
grep
|
awk
'{ print $2 }'
`
#PID=`ps -ef | grep murder_client|grep seed | grep python |grep -v $0|grep -v grep|grep -v sh|grep -v root| awk '{ print $2 }'`
}
start () {
getent
passwd
$murder_user >
/dev/null
||
useradd
-r -s
/sbin/nologin
$murder_user
LOG_DIR=`
dirname
${murder_seeder_log}`
DATA_DIR=${murder_seeder_data}
if
[ ! -d $LOG_DIR ];
then
echo
-e
"\e[35mLog dir ${LOG_DIR} doesn't exist. Creating\e[0m"
mkdir
-p $LOG_DIR
fi
if
[ ! -d $DATA_DIR ];
then
echo
-e
"\e[35mLog dir ${DATA_DIR} doesn't exist. Creating\e[0m"
mkdir
-p $DATA_DIR
fi
####### make torrent
python $murder_make_torrent_bin $deploy_file $tracker_ip $torrent_file
#######
chown
-R $murder_user:$murder_user $DATA_DIR $LOG_DIR
find_seeder_process
if
[
"$PID"
!=
""
];
then
echo
-e
"\e[35m$name is already running!\e[0m"
else
nohup
python $murder_seeder_bin seed $torrent_file $deploy_file $local_ip > $murder_seeder_log 2>&1 &
#daemon --user $murder_user nohup python $murder_seeder_bin seed $torrent_file $deploy_file $local_ip > $murder_seeder_log 2>&1 &
echo
-e
"\e[35mStarting $name Done\e[0m"
fi
}
stop () {
find_seeder_process
if
[
"$PID"
!=
""
];
then
echo
-e
"\e[35mStopping $name\e[0m"
kill
$PID
else
echo
-e
"\e[35m$name is not running yet\e[0m"
fi
}
case
$1
in
start)
start
;;
stop)
stop
exit
0
;;
reload)
stop
sleep
2
start
;;
restart)
stop
sleep
2
start
;;
status)
find_seeder_process
if
[
"$PID"
!=
""
];
then
echo
-e
"\e[35m$name is running: $PID\e[0m"
exit
0
else
echo
-e
"\e[35m$name is not running\e[0m"
exit
1
fi
;;
*)
echo
-e
"\e[35mUsage: $0 {start|stop|restart|reload|status|configtest}\e[0m"
RETVAL=1
esac
exit
0
1
2
3
4
5
# cat /opt/app/murder/dist/seeder.conf
deploy_file=/opt/data/murder/deploy.tar.gz
torrent_file=/opt/data/murder/deploy.torrent
tracker_ip=172.168.2.171:8998
local_ip=172.168.2.179
1
# ansible 172.168.2.179 -m service -a "name=murder-seeder state=started"
1
# ansible 172.168.2.179 -m synchronize -a "mode=pull src=/opt/software/download/deploy.torrent dest=/opt/software/download"
1
# ansible all -m synchronize -a "src=/opt/software/download/deploy.torrent dest=/opt/software/download"
1
# ansible all -m shell -a "sh /opt/app/murder/dist/peer_download.sh"
1
2
3
4
5
6
7
8
#!/bin/bash
#this file is used to download bt files
torrent_file=
/opt/software/download/deploy
.torrent
download_file=
/opt/software/download/deploy
.
tar
.gz
local_ip=$(
hostname
-I|
awk
'{print $1}'
)
murder_client_bin=
/opt/app/murder/dist/murder_client
.py
python $murder_client_bin peer $torrent_file $download_file $local_ip
1
2
3
4
(
'minport'
, 10000,
'minimum port to listen on, counts up if unavailable'
),
(
'maxport'
, 60000,
'maximum port to listen on'
),
(
'random_port'
, 1,
'whether to choose randomly inside the port range '
+
'instead of counting up linearly'
),
阅读全文
0 0
- 结合P2P软件使用Ansible分发大文件
- 结合P2P软件使用Ansible分发大文件
- centos7上使用ansible+murder分发文件
- P2P游戏更新解决方案,P2P游戏更新引擎,P2P大文件分发。
- P2P文件分发读书笔记
- 使用python socket分发大文件
- ansible文件模块使用
- 使用P2P更新软件
- 使用python socket多线程实现大文件分发
- P2P穿透原理技术及开放的P2P软件使用
- ansible使用
- ansible使用
- 使用isa server 2004禁止P2P软件
- win32图片和大文件分发程序
- 最热门的十大P2P软件排行
- P2P 分发引擎协议草稿
- 阿里宣布开源容器技术Pouch和P2P文件分发系统“蜻蜓”
- 新一代超强P2P文件分享软件HyPeerlink介绍
- android 购物车的实现
- 几种常见的设计模式
- Java获取本地服务器Ip的方法
- Hibernate之one2one主键关联
- mvc 微信公众号支付
- 结合P2P软件使用Ansible分发大文件
- Spring Bean的管理
- HTML5权威指南笔记:14-其他表单元素及输入验证
- mysql帐号管理
- Nginx+RTMP 搭建视频点播服务器
- 简单的telnet使用性不介绍理论
- 架构师必看:微服务架构综述
- Source Insight 4.0,solarized-dark配色主题展示
- 关于phpstudy访问localhost不出现目录的问题