小豆浆 使用python部署mongodb www.xdoujiang.com

  • A+
所属分类:python实战
  1. 1、下载包
    root@192.168.4.97:~# curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.0.tgz
    2、安装
    root@192.168.4.97:scripts# python 13.py
    execute command (/root/scripts/mongo/bin/mongod --fork --dbpath /root/scripts/mongodata --logpath /root/scripts/mongodata/mongod.log) successful
    3、看下进程和端口
    root@192.168.4.97:~# netstat -tupnl|grep mongo
    tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 25114/mongod
    root@192.168.4.97:~# ps -ef|grep mongo
    root 25114 1 3 17:05 ? 00:00:02 /root/scripts/mongo/bin/mongod --fork --dbpath /root/scripts/mongodata --logpath /root/scripts/mongodata/mongod.log
    4、源码

    #!/usr/bin/python

  2. # -*- coding: utf-8 -*-
  3. #--------------------------------------------------
  4. #Author:gongzheng
  5. #Email:85646830@163.com
  6. #FileName:13.py
  7. #Function: 
  8. #Version:1.0 
  9. #Created:2017-11-30
  10. #--------------------------------------------------
  11. from __future__ import print_function
  12. import os
  13. import shutil
  14. import tarfile
  15. import subprocess
  16. def execute_cmd(cmd):
  17.     p = subprocess.Popen(cmd,
  18.                          shell=True,
  19.                          stdin=subprocess.PIPE,
  20.                          stdout=subprocess.PIPE,
  21.                          stderr=subprocess.PIPE)
  22.     stdout, stderr = p.communicate()
  23.     if p.returncode != 0:
  24.         return p.returncode, stderr
  25.     return p.returncode, stdout
  26. def unpackage_mongo(package, package_dir):
  27.     unpackage_dir = os.path.splitext(package)[0]
  28.     if os.path.exists(unpackage_dir):
  29.         shutil.rmtree(unpackage_dir)
  30.     if os.path.exists(package_dir):
  31.         shutil.rmtree(package_dir)
  32.     t = tarfile.open(package, 'r:gz')
  33.     t.extractall('.')
  34.     shutil.move(unpackage_dir, package_dir)
  35. def create_datadir(data_dir):
  36.     if os.path.exists(data_dir):
  37.         shutil.rmtree(data_dir)
  38.     os.mkdir(data_dir)
  39. def format_mongod_command(package_dir, data_dir, logfile):
  40.     mongod = os.path.join(package_dir, 'bin', 'mongod')
  41.     mongod_format = """{0} --fork --dbpath {1} --logpath {2}"""
  42.     return mongod_format.format(mongod, data_dir, logfile)
  43. def start_mongod(cmd):
  44.     returncode, out = execute_cmd(cmd)
  45.     if returncode != 0:
  46.         raise SystemExit('execute {0} error :{1}'.format(cmd, out))
  47.     else:
  48.         print("execute command ({0}) successful".format(cmd))
  49. def main():
  50.     package = 'mongodb-linux-x86_64-3.4.0.tgz'
  51.     cur_dir = os.path.abspath('.')
  52.     package_dir = os.path.join(cur_dir, 'mongo')
  53.     data_dir = os.path.join(cur_dir, 'mongodata')
  54.     logfile = os.path.join(data_dir, 'mongod.log')
  55.     if not os.path.exists(package):
  56.         raise SystemExit("{0} not found".format(package))
  57.     unpackage_mongo(package, package_dir)
  58.     create_datadir(data_dir)
  59.     start_mongod(format_mongod_command(package_dir, data_dir, logfile))
  60. if __name__ == '__main__':
  61.     main()
  62. 和书上一模一样。。。基本没改。。运行可以。。
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

说点什么

您将是第一位评论人!

提醒
avatar