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 相关文章推荐
Python中用max()方法求最大值的介绍
May 15 Python
Python语法快速入门指南
Oct 12 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
python爬虫之BeautifulSoup 使用select方法详解
Oct 23 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
python实现机器学习之元线性回归
Sep 06 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
pytorch+lstm实现的pos示例
Jan 14 Python
Matplotlib可视化之添加让统计图变得简单易懂的注释
Jun 11 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
解决GD中文乱码问题
2007/02/14 PHP
php下保存远程图片到本地的办法
2010/08/08 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php验证session无效的解决方法
2014/11/04 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
深入解析Python中的WSGI接口
2015/05/11 Python
Ubuntu下安装PyV8
2016/03/13 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
python模拟实现斗地主发牌
2020/01/07 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
会计专业的自荐信
2013/12/12 职场文书
工作保证书范文
2014/04/29 职场文书
元旦趣味活动方案
2014/08/22 职场文书
介绍信如何写
2015/01/31 职场文书
Feign调用全局异常处理解决方案
2021/06/24 Java/Android