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 排序算法总结及实例详解
Sep 28 Python
Python生成随机数组的方法小结
Apr 15 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
对python cv2批量灰度图片并保存的实例讲解
Nov 09 Python
Python 移动光标位置的方法
Jan 20 Python
详解python多线程之间的同步(一)
Apr 03 Python
python求平均数、方差、中位数的例子
Aug 22 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
python创建子类的方法分析
Nov 28 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
python编写俄罗斯方块
Mar 13 Python
Python用tkinter实现自定义记事本的方法详解
Mar 31 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进程通信基础之信号
2017/02/19 PHP
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
python中的协程深入理解
2019/06/10 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
银行实习鉴定
2013/12/13 职场文书
实习自我鉴定
2013/12/15 职场文书
历史专业个人求职信分享
2013/12/20 职场文书
大学四年规划书范文
2013/12/27 职场文书
二手书店创业计划书
2014/01/16 职场文书
服务员岗位职责
2014/01/29 职场文书
个人简历自我评价范文
2014/02/04 职场文书
大学推普周活动总结
2015/05/07 职场文书
二审答辩状范文
2015/05/22 职场文书
交通事故被告代理词
2015/05/23 职场文书
golang import自定义包方式
2021/04/29 Golang
python3 字符串str和bytes相互转换
2022/03/23 Python