python安装mongodb

提前把mongodb-linux-x86_64-rhel70-3.2.4.tgz放到和脚本相同目录下,然后把下复制到脚本里面,开始执行

#!/usr/bin/python
#-*- codinig: UTF-8 -*-
from __future__ import print_function
import os
import shutil
import tarfile
import subprocess

os.chdir('/root')

def execute_cmd(cmd):
    p=subprocess.Popen(cmd,
                        shell=True,
                        stdin=subprocess.PIPE,
                        stdout=subprocess.PIPE,
                        stderr=subprocess.PIPE)
    stdout,stdeer=p.communicate()
    if p.returncode!=0:
        return p.returncode,stdeer
    return p.returncode,stdout

def unpackage_monge(package,package_dir):
    unpackage_dir=os.path.splitext(package)[0]
    if os.path.exists(unpackage_dir):
        shutil.rmtree(unpackage_dir)
    if os.path.exists(package_dir):
        shutil.rmtree(package_dir)
    t=tarfile.open(package,'r:gz')
    t.extractall('.')
    shutil.move(unpackage_dir,package_dir)

def create_datadir(data_dir):
    if os.path.exists(data_dir):
        shutil.rmtree(data_dir)
    os.mkdir(data_dir)

def format_mongod_mommand(package_dir,data_dir,logfile):
    mongod=os.path.join(package_dir,'bin','mongod')
    mongod_format="""{0} --fork --dbpath {1} --logpath {2}"""
    return mongod_format.format(mongod,data_dir,logfile)
def start_mongod(cmd):
    returncode, out = execute_cmd(cmd)
    if returncode !=0:
        raise SystemExit('excete {0} error :{1}'.format(cmd,out))
    else:
        print('execute command {0} seccessful'.format(cmd))
def main():
    package='mongodb-linux-x86_64-rhel70-3.2.4.tgz'
    cur_dir=os.path.abspath('.')
    package_dir=os.path.join(cur_dir,'mongo')
    data_dir=os.path.join(cur_dir,'mongodata')
    logfile=os.path.join(data_dir,'mongod.log')
    if not os.path.exists(package):
        raise SystemExit('{0} not found'.format(package))
    unpackage_monge(package,package_dir)
    create_datadir(data_dir)
    start_mongod(format_mongod_mommand(package_dir,data_dir,logfile))
if __name__ == '__main__':
    main()

 

转载于:https://www.cnblogs.com/effortsing/p/10281318.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值