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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
学习python 之编写简单乘法运算题
Feb 27 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
python 同时读取多个文件的例子
Jul 16 Python
Python创建数字列表的示例
Nov 28 Python
django框架两个使用模板实例
Dec 11 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
Python动态导入模块和反射机制详解
Feb 18 Python
零基础学python应该从哪里入手
Aug 11 Python
python数字图像处理之对比度与亮度调整示例
Jun 28 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快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
JavaScript 详解预编译原理
2017/01/22 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
简单介绍Python中的floor()方法
2015/05/15 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
Python包和模块的分发详细介绍
2020/06/19 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
Java面试题及答案
2012/09/08 面试题
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
语文教育专业推荐信范文
2013/11/25 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
博士给导师的自荐信
2015/03/06 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android