-
Notifications
You must be signed in to change notification settings - Fork 0
/
replicaset.py
51 lines (47 loc) · 1.32 KB
/
replicaset.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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__author__ = "Administrator"
__name__="replicaset"
__date__="2016/8/12"
__time__="14:54"
"""
import os
import sys
import argparse
hosts = [
{
'ip': '127.0.0.1',
'port': 27017,
'db_path': '/data/db0'
},
{
'ip': '127.0.0.1',
'port': 27018,
'db_path': '/data/db1'
},
{
'ip': '127.0.0.1',
'port': 27019,
'db_path': '/data/db2'
}
]
mongodb_bin = '/usr/local/src/mongodb/bin/mongod'
if __name__ == "__main__":
# check user
if os.getuid() != 0:
print '必须切换为root用户才能执行'
exit()
parse = argparse.ArgumentParser()
parse.add_argument('--cmd', default='start', help='start: start mongodb replica set stop:stop mongodb replica set '
)
parse.add_argument('--name', default='foo', help='replica set name')
args = parse.parse_args()
if args.cmd == 'start':
for index, host in enumerate(hosts):
if not os.path.exists(host['db_path']):
os.mkdir(host['db_path'])
command = mongodb_bin + ' --fork --rest --httpinterface --syslog --dbpath %s --replSet %s --port %s --bind_ip %s' % (
host['db_path'], args.name, host['port'], host['ip'])
os.system(command)
pass