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 06 Python
python获得linux下所有挂载点(mount points)的方法
Apr 29 Python
Python算法应用实战之栈详解
Feb 04 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
python实现多人聊天室
Mar 31 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
Python爬取破解无线网络wifi密码过程解析
Sep 17 Python
python 默认参数相关知识详解
Sep 18 Python
Python执行时间的几种计算方法
Jul 31 Python
pytorch中的model=model.to(device)使用说明
May 24 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
PHP开发的微信现金红包功能示例
2017/06/29 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
python读写csv文件实例代码
2019/07/05 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
汽车专业毕业生推荐信
2013/11/12 职场文书
计算机应用与科学个人的自我评价
2013/11/15 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
python字典进行运算原理及实例分享
2021/08/02 Python
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python