提前把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()

最新文章

  1. 25. Valid Palindrome
  2. ubuntu 更新 rtl8192cu 驱动
  3. C#联调C++项目
  4. Hadoop集群(第9期)_MapReduce初级案例
  5. 层次数据结构字符串处理,split函数使用
  6. Oracle----dual
  7. 【canvas】基于坐标的碰撞检测 / 基本的动画 / 多物体动画
  8. day04
  9. openstack 的 policy 问题。
  10. JDK1.8源码阅读系列之一:ArrayList
  11. Uva - 210 - Concurrency Simulator
  12. 【转】Android调用Sqlite数据库时自动生成db-journal文件的原因
  13. 【学习总结】C-翁恺老师-入门-第3周<循环>
  14. 前端 json 导出 excel
  15. TFRecord文件的读写
  16. [转载]eclipse自动同步插件filesync的使用
  17. jenkins自动化打包部署
  18. 什么是DNS服务器
  19. x13 vs md5
  20. Python的hasattr() getattr() setattr() 函数使用方法

热门文章

  1. Java语言基础(3)
  2. Summer training round2 #4 (Training #20)
  3. 用IDesktopWallpaper接口设置png壁纸
  4. visudo修改编辑器vim
  5. hive判断数据一个表是否在另一个表中(二)
  6. Acwing-121-赶牛入圈(二分, 二维前缀和,离散化)
  7. Unity3D资源
  8. 树莓派设定笔记(Raspberry Pi 3 B+)
  9. Python 模块 Ⅱ
  10. NURBS 曲线和曲面参数化