import tarfile

import sys,os

from _utils.patrol2 import run_cmd

import zipfile

def get_version(filename):

cmd="rpm -U {}".format(filename)

code,res=run_cmd(cmd,cwd=pkg_unzip_path)

if 'is already installed' in res or '已安装' in res:

return True

else:

return False

def install_pkg(filename):

cmd = "yum -y localinstall {}".format(filename)

code,res=run_cmd(cmd,cwd=pkg_unzip_path)

if code:

print res

sys.exit(1)

if get_version(filename):

return True

else:

return False

def extract(tar_path, target_path):

try:

tar = tarfile.open(tar_path, "r:gz")

file_names = tar.getnames()

for file_name in file_names:

tar.extract(file_name, target_path)

tar.close()

except Exception, e:

print Exception, e

sys.exit(1)

def search(path, word):

for filename in os.listdir(path):

fp = os.path.join(path, filename)

if os.path.isfile(fp) and word in filename:

return filename

elif os.path.isdir(fp):

search(fp, word)

return False

def unpack_zip(filename, destpath, fix_path=None):

zf_obj = zipfile.ZipFile(filename)

if destpath.endswith(':'):

destpath = destpath + os.sep

zf_obj.extractall(path=destpath)

zf_obj.close()

if fix_path:

destpath = os.path.join(destpath, fix_path)

return destpath

if pkg_file.endswith('.gz'):

extract(pkg_file, pkg_unzip_path)

elif pkg_file.endswith('.zip'):

pkg_name=pkg_name.split('.zip')[0]

pkg_unzip_path=unpack_zip(pkg_file, pkg_unzip_path,fix_path=pkg_name)

print '-->解压成功'

code,res=run_cmd('chmod 755 ./lap/jre/jre/bin/java', cwd=pkg_unzip_path)

if code:

print 'java执行权限赋权失败',res

sys.exit(1)

else:

print 'java执行权限赋权成功'

#接受授权认证

cmd = "sh mqlicense.sh<

code,res = run_cmd(cmd,cwd=pkg_unzip_path)

if code:

print res

sys.exit(1)

else:

print res

print '-->权限认证成功'

#1、安装系统依赖包

print '开始安装rpm包,请等待'

names=["MQSeriesRuntime","MQSeriesSDK","MQSeriesJava","MQSeriesClient","MQSeriesSamples","MQSeriesServer"]

for name in names:

filename=search(pkg_unzip_path, name)

if not filename:

print '{}相关的包不存在'.format(name)

sys.exit(1)

elif get_version(filename):

print '{}已安装'.format(filename)

elif filename and not get_version(filename):

res=install_pkg(filename)

if res:

print '安装{}成功'.format(filename)

else:

print '安装{}失败'.format(filename)

sys.exit(1)

print '-->依赖包安装成功'

#2、修改系统limits参数

with open('/etc/security/limits.conf','a') as f:

f.write("mqm soft nofile 10240\nmqm hard nofile 10240\nmqm soft nproc 4096\n")

print '-->修改系统limits参数成功'

#3、修改系统核心参数

with open('/etc/sysctl.conf','a') as f:

f.write("kernel.sem = 500 256000 250 1024\nfs.file-max = 524288\nnet.ipv4.tcp_keepalive_time = 300\n")

cmd = "sysctl -p"

code,res=run_cmd(cmd,cwd=pkg_unzip_path)

if 'kernel.sem = 500 256000 250 1024\nfs.file-max = 524288\nnet.ipv4.tcp_keepalive_time = 300' in res:

print '-->修改系统核心参数成功'

else:

print '-->修改系统核心参数失败'

sys.exit(1)

python安装lap_一个python脚本解决安装mq的依赖问题相关推荐

  1. Python 开篇及第一个Python程序

    本节内容 python 简单介绍 python 2.x 或者python 3.x python 安装 第一个python程序 一.python简单介绍 python的创始人为吉多.范罗苏姆(Guido ...

  2. python中tensorflow无法使用_完美解决安装完tensorflow后pip无法使用的问题

    Win8,ANACONDA3(64-bit),Python3.6.2.ANACONDA Prompt中不能用pip命令安装包,并且是在安装了TensorFlow后才发生的. 报错如下: F:\360D ...

  3. linux python复制安装,复制一个Python全部环境到另一个环境,python另一个,导出此环境下安装的包...

    复制一个Python全部环境到另一个环境,python另一个,导出此环境下安装的包 导出此环境下安装的包的版本信息清单pipfreeze>requirements.txt联网,下载清单中的包到a ...

  4. python sdk怎么用_如何使用七牛Python SDK写一个同步脚本及使用教程

    七牛云存储的 Python 语言版本 SDK(本文以下称 Python-SDK)是对七牛云存储API协议的一层封装,以提供一套对于 Python 开发者而言简单易用的开发工具.Python 开发者在对 ...

  5. 用 Python + itchat 写一个爬虫脚本每天定时给女朋友发微信暖心话

    项目介绍: 灵感来源 在掘金看到了一篇<用Node+wechaty写一个爬虫脚本每天定时给女(男)朋友发微信暖心话>后,我就想为什么不用 Python 去实现这个功能呢. JUST TO ...

  6. python脚本中执行另一个脚本_如何用python调用另一个python脚本?

    如果想要将已经设置好的内容,在转移到另一个位置要怎么做呢?小编能写到的方法有,照抄,复制,以及转移使用.在我们日常办公上是非常好理解的,就是ctr v,但是如果想在编程上,将某一位置拿去到别的项目上使 ...

  7. python基础-第一个python程序

    前言 上一章中,我们介绍了怎么去安装python环境,作为我们入门python的先决条件,今天,我们通过编写第一个python应用程序的方式,正式进入python的大门. 首先,关于python,有两 ...

  8. python如何运行一个python程序_python如何运行?第一个python小程序示范

    我们想要用python编程首先要做的就是安装一些工具,随后学会应用.那么问题来了,我们需要安装什么?python又是怎样运行的呢? 安装什么工具? 1.Python 3.6.5(我安装的,还有很多版本 ...

  9. 安装VMWare tools,以及解决安装后/mnt中有hgfs但没共享文件的方法

    一.首先是安装VMWare tools   安装过程可参考:http://www.cnblogs.com/jiu0821/p/7559949.html   二.解决安装VMWare tools后/mn ...

最新文章

  1. 正则表达式笔记(谷歌分析自定义报告)
  2. 【大数据-Hadoop】Hive
  3. SAP CRM, C4C和Hybris的后台作业
  4. icem网格划分如何给内部面网格_icem结构化网格划分 ICEM里面设置一下就可以自动划分网格,为什么要用块?...
  5. 再谈节奏与动力---平淡与枯燥的力量
  6. Java常用数据类型
  7. FT1248开发笔记
  8. mysql大于等于怎么写_MySQL 对于千万级的大表要怎么优化?我写了6000字的深度解读...
  9. 文件浏览器及数码相框 -2.3.2-freetype_arm-1
  10. 在手动安装 Kubernetes 的基础上搭建微服务
  11. 一个字等于多少字节?
  12. 西北农林科技大学CSDN高校俱乐部运营策划书
  13. Python练手小项目(名片管理系统<第二部分>)
  14. jpg图片转换成PDF转换器免费版使用
  15. 个人手机网站接入支付宝在线收款功能
  16. 佳能软件不用光盘安装升级包的方法
  17. 【人工智能】3.谓词与机器推理
  18. 电脑控制手机 教你实现多个手机同时打开关闭软件
  19. Windows 11打印测试页
  20. 服务器中病毒要不要重装系统,五种情况必须要给电脑重装系统,这三种不用重做系统,别被骗了!...

热门文章

  1. 带有Python示例的math.cos()方法
  2. synchronized 中的 4 个优化,你知道几个?
  3. VS2010 error C299: “Font”:“struct”类型重定义
  4. python深度神经网络算法_02.深度神经网络算法之Python基础与数据分析
  5. matlab去除图片水印_(水印去除技巧)3个在线图片水印去除网站,值得收藏
  6. python同时输出两个数组_python中实现将多个print输出合成一个数组
  7. 密度图的密度估计_不同类型的二维密度图小教程
  8. mysql max字符串报错_mysql [Warning] max_join_size报错问题解决办法
  9. python三种变量方式_python2.x 3种变量形式调用
  10. mysql数据库的三级模式_2016年计算机三级MySQL数据库试题