python实现自动化上线脚本的示例


Posted in Python onJuly 01, 2019

程序说明:

本程序实现将开发程序服务器中的打包文件通过该脚本上传到正式生产环境(注:生产环境和开发环境不互通)

程序基本思路:

将开发环境中的程序包拷贝到本地堡垒机

将程序包进行解压

获得解压后的文件通同步到生产服务器上

主要知识点:python库os.system()的基本使用 利用python调用xshell命令

程序使用方法:

python addline.py 开发主机ip 程序包 目标主机ip 上传目录 上传编号

如:python addline.py 240 /home/shaojinlong/2018-7-17/activityIqiyi_766bb10bd811e40732cf79dffde9a904_20180717.tar.gz 165 /home/zhouja01 190122

具体程序:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time  : 2018/7/17 20:56
# @Author : Zhou Jiaan
# @File  : addline.py
import os
import sys
import re
import time
##使用方法:
# python addline.py 240 filename 165 directory runnum
## 如:python addline.py 240 /home/shaojinlong/2018-7-17/activityIqiyi_766bb10bd811e40732cf79dffde9a904_20180717.tar.gz 165 /home/zhouja01 190122


##拷贝文件
def cpfile(source_host,source_dir, runnum):
  os.system("mkdir -p /sx/%s" % (runnum))
  os.system("scp %s:%s /sx/%s " % (source_host,source_dir, runnum))

##解压文件
def tarfile(source_dir,runnum):

  target_test = re.split(r'/', source_dir)
  print(target_test[-1])
  os.system(
    "tar zxvf /sx/%s/%s -C /sx/%s/" % (runnum,target_test[-1], runnum))
  time.sleep(1) #休眠一秒 因为同步脚本获取日志需要一秒钟

# 同步文件
def syncfile(filename, runnum,target_host):

  os.system("ssh %s 'mkdir -p /home/zhouja01/sx/%s'" % (target_host,runnum))
  os.system("scp -r /sx/%s/%s %s:/home/zhouja01/sx/%s/" %
       (runnum, filename,target_host,runnum))
  # os.system("ssh 165 'sudo -u apps sh /home/zhouja01/bcp_web.sh /home/zhouja01/sx/%s/%s /home/apps/ananetest/%s'" %
  #      (runnum, filename, filename))

def delfile(runnum):
  os.system("mv /sx/%s /sx/wc"%(runnum))

def main():
  source_host=sys.argv[1] #源主机ip
  source_dir=sys.argv[2] #源主机文件
  target_host=sys.argv[3] #目标主机ip
  target_dir=sys.argv[4] #目标主机文件
  runnum=sys.argv[5] #oa流水号

  cpfile(source_host,source_dir,runnum) #将文件从源主机拷贝到堡垒机
  tarfile(source_dir,runnum) #解压文件

#获得解压文件名
  with open('/var/log/sx.log', 'r') as f:
    lines = f.readlines()
    last_line = lines[-1]
    print(last_line)
    filename = re.split(r'/', last_line)
    print(filename[3])

  syncfile(filename[3], runnum,target_host) #将文件同步到目标主机
  delfile(runnum) #将堡垒机文件移动到完成目录

if __name__ == '__main__':
  main()

以上这篇python实现自动化上线脚本的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
Python random模块用法解析及简单示例
Dec 18 Python
详解Python3的TFTP文件传输
Jun 26 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
Mar 14 Python
Python3 JSON编码解码方法详解
Sep 06 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
解决springboot yml配置 logging.level 报错问题
Feb 21 Python
Python文件操作基础流程解析
Mar 19 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 Python
在Python中构建增广矩阵的实现方法
Jul 01 #Python
django框架实现模板中获取request 的各种信息示例
Jul 01 #Python
Python整数对象实现原理详解
Jul 01 #Python
python实现两个dict合并与计算操作示例
Jul 01 #Python
Python字符串对象实现原理详解
Jul 01 #Python
Python转换时间的图文方法
Jul 01 #Python
Python列表对象实现原理详解
Jul 01 #Python
You might like
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
vant实现购物车功能
2020/06/29 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
Python操作MySQL简单实现方法
2015/01/26 Python
Python实现统计单词出现的个数
2015/05/28 Python
python__name__原理及用法详解
2019/11/02 Python
python数据化运营的重要意义
2019/11/25 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
iHerb香港:维生素、补充剂和天然保健品
2017/08/01 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
五星级酒店前台接待岗位职责
2015/04/02 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript