《Python自动化运维之路》 业务服务监控

Posted LyShark

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Python自动化运维之路》 业务服务监控相关的知识,希望对你有一定的参考价值。

文件内容差异对比方法

目录:

  • 实例:两个字符串的差异对比
  • 生成美观的对比HTML格式文档
  • 对比Nginx配置文件的差异

 

两个字符串的差异对比

本例通过使用difflib模块实现两个字符串的差异对比,然后以版本控制风格进行输出。

>>> import difflib
>>> 
>>> text1="difflib document v7.4"                #定义字符串1
>>> text2="difflib document v7.5"                #定义字符串2
>>> 
>>> text1_lines=text1.splitlines()               #进行分割,以便于进行对比
>>> text2_lines=text2.splitlines()
>>> 
>>> diff=difflib.Differ()                        #创建Differ()对象
>>> 
>>> differ=diff.compare(text1_lines,text2_lines) #采用compare方法对比字符串
>>> 
>>> print(\n.join(list(differ)))
- difflib document v7.4
?                     ^

+ difflib document v7.5
?                     ^

>>> 

//注释:对符号含义说明
// - #包含在第一个序列行中,但不包含在第二个序列行中
// + #包含在第二个序列行中,但不包含在第一个序列行中
// 空 #两个序列行一致
// ? #两个序列行存在增量差异
// ^ #两个序列行存在差异字符

 

生成美观的对比HTML格式文档

 采用HtmlDiff()类的make_file()方法就可以生成美观的HTML文档啦。

>>> import difflib
>>> 
>>> text1_lines=text1.splitlines()
>>> text2_lines=text2.splitlines()
>>> 
>>> 
>>> text1_lines=text1.splitlines()
>>> text2_lines=text2.splitlines()
>>> 
>>> diff=difflib.HtmlDiff()
>>> print(diff.make_file(text1_lines,text2_lines))

#将生成的代码保存成*.html用浏览器打开就可以看到效果了。美美哒

 

对比Nginx配置文件的差异

import difflib
import sys

try:
    textfile1 = sys.argv[1]                            #第一个文件参数
    textfile2 = sys.argv[2]                            #第二个文件参数
except Exception (e):
    print ("Error:" +str(e))
    print ("Usage: python sample3.py filename1 filename2")
    sys.exit()

def readfile(filename):                                #文件读取分隔函数
    try:
        filehandle = open(filename,rb)
        text = filehandle.read().splitlines()          #读取后进行分分隔
        filehandle.close()
        return text
    except IOError as error:
        print (Read file Error: +str(error))
        sys.exit()

text1_lines = readfile(textfile1)                      #调用readline函数,获取分隔后的字符串
text2_lines = readfile(textfile2)

d = difflib.HtmlDiff()                                 #创建htmldiff()对象
print (d.make_file(str(text1_lines),str(text2_lines))) #通过make_file方法输出HTML格式的比对结果

//注释:调用格式 python *.py nginx.conf nginx1.conf > index.html

 

文件与目录差异对比方法

目录:

  • 模块常用方法说明
  • 实例:校验源于备份目录的差异

 

 马上更新,稍安污糟,撸起袖子加油干!!!!

 

 

发送电子邮件模块SMTPlib

目录:

  • smtplib模块的常用类与方法
  • 定制个性化的邮件格式方法
  • 定制常用邮件格式示例详解

 

 

 

探测WEB服务质量的方法

目录:

  • 模块常用方法说明
  • 实例:实现探测WEB服务的质量

 

以上是关于《Python自动化运维之路》 业务服务监控的主要内容,如果未能解决你的问题,请参考以下文章

中国人寿自动化运维自主研发之路

架构师之路系列文章

Zabbix API——开启运维监控自动化之路

架构师之路系列文章

《Python自动化运维之路》 系统基础信息模块

Linux运维每天都做啥工作