|
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.zipunzip murder.zipcd 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-trackerif [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functionsfiname="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=murderfind_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 instart) 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=1esacexit 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-seederif [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functionsfiname="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=murderfind_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 instart) 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=1esacexit 0 |
|
1
2
3
4
5
|
# cat /opt/app/murder/dist/seeder.conf deploy_file=/opt/data/murder/deploy.tar.gztorrent_file=/opt/data/murder/deploy.torrenttracker_ip=172.168.2.171:8998local_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 filestorrent_file=/opt/software/download/deploy.torrentdownload_file=/opt/software/download/deploy.tar.gzlocal_ip=$(hostname -I|awk '{print $1}')murder_client_bin=/opt/app/murder/dist/murder_client.pypython $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)`\##
* |~ ~ , \##
* | | \##
* | /\ \## __..---'''''-.._.._
* | | \ `\## _.--' _ `.
* Y | \ `##' \`\ \
* / | \ | `\ \
* /_...___| \ | `\\
* / `. | / ##
* | | | / ####
* | | | / ####
* | () () | \ | | _.-' ##
* `. .' `._. |______..| |-'|
* `------' | | | | | || |
* | | | | | || |
* | | | | | || |
* | | | | | || |
* _____ | | | |____| || |
* / `` |-`/ ` |` |
* \________\__\_______\__\
* """"""""" """""""'"""
* Don't be a fucking stupid donkey! No, this is a fucking mule!
*/




浙公网安备 33010602011771号