我的编程空间,编程开发者的网络收藏夹
学习永远不晚

3、python自动化运维——定制业务质

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

3、python自动化运维——定制业务质

通过psutil和rrdtool模块相结合绘制网卡网络流量

test.png

 


                                           

 

实例代码:

./cretea.py

#!/usr/bin/python
 
import time
  import rrdtool
 
  cur_time=str(int(time.time()))
  rrd=rrdtool.create('Flow.rrd','--step','300','--start',cur_time,
        'DS:eth0_in:COUNTER:600:0:U',
        'DS:eth0_out:COUNTER:600:0:U',
        'RRA:AVERAGE:0.5:1:600',
        'RRA:AVERAGE:0.5:6:700',
        'RRA:AVERAGE:0.5:24:775',
        'RRA:AVERAGE:0.5:288:797',
        'RRA:MAX:0.5:1:600',
        'RRA:MAX:0.5:6:700',
                  'RRA:MAX:0.5:24:775',
        'RRA:MAX:0.5:444:797',
        'RRA:MIN:0.5:1:600',
                  'RRA:MIN:0.5:6:700',
                  'RRA:MIN:0.5:24:775',
                  'RRA:MIN:0.5:444:797')
  if rrd:
     print(rrdtool.error())

 

                                                                

./update.py

import time,psutil
  import rrdtool
total_input_traffic=psutil.net_io_counters()[1]
total_output_traffic=psutil.net_io_counters()[0]
starttime=int(time.time())
update=rrdtool.updatev('/root/Scripts/rrdtools/Flow.rrd','%s:%s:%s' % (str(starttime),str(total_input_traffic),str(total_output_traffic)))
  print(update)
 

 

 

./graph.py

import time,psutil
import rrdtool
 

 

title="Server network,traffic flow ("+time.strftime('%Y-%m-%d',time.localtime(time.time()))+")"
 
rrdtool.graph("Flow.png","--start","-1d","--vertical-label=Bytes/s",
  "--x-grid","MINUTE:12:HOUR:1:HOUR:1:0:%H","--width","650","--height","230",
  "--title",title,
  "DEF:inoctets=Flow.rrd:eth0_in:AVERAGE",
  "DEF:outoctets=Flow.rrd:eth0_out:AVERAGE","CDEF:total=inoctets,outoctets,+",
  "LINE1:total#FF8833:Total traffic","AREA:inoctets#00FF00:IN traffic",
  "LINE1:outoctets#0000FF:Out traffic","HRULE:6144#FF0000:Alarm value\\r",
  "CDEF:inbits=inoctets,8,*","CDEF:outbits=outoctets,8,*",
  "COMMENT:\\r",
  "COMMENT:\\r",
  "GPRINT:inbits:AVERAGE:Avg In traffic\: %6.2lf %Sbps",
  "COMMENT: ","GPRINT:inbits:MAX:Max In traffic\: %6.2lf %Sbps",
  "COMMENT: ","GPRINT:inbits:MIN:Min In traffic\: %6.2lf %Sbps\\r","COMMENT: ","GPRINT:outbits:AVERAGE:Avg OuT traffic\: %6.2lf %Sbps","COMMENT: ","GPRINT:outbits:MAX:Max OuT traffic\: %6.2lf %Sbps",
  "COMMENT: ","GPRINT:outbits:MIN:Min OuT traffic\: %6.2lf %Sbps\\r")
 

 

 

实现TCP探测目标路由轨迹

所需安装包:ImageMagick(转换图片格式工具),graphviz(绘制图形工具)

通过scapy的traceroute方法查询到路由轨迹,然后调用graph()方法进行路由轨迹的绘制,中间调用ASN映射查询IP地理信息并生成svg流程文档,最后使用ImageMagic工具转换svg格式为png格式。

 

import logging,warnings
  import sys,os,subprocess
  import time
 
  warnings.filterwarnings("ignore",category=DeprecationWarning)  

#屏蔽scapy 无用信息
  logging.getLogger("scapy.runtime").setLevel(logging.ERROR)     
  #屏蔽模块IPV6多余告警
  from scapy.all   import traceroute
  domains=raw_input("please input you   domain name:\n")

#接受输入的域名或IP
  target=domains.split(" ")
  dport = [80]
 
  if len(target) >=1 and target[0]!='':
     res,unans =traceroute(target,dport=dport,retry=-2)#启动路由跟踪
     res.graph(target="> test.svg")    #生成svg图片
     time.sleep(1)
     subprocess.Popen("/usr/bin/convert test.svg test.png",shell=True)
  else:
     print("IP/domain name Error")

 

 


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

3、python自动化运维——定制业务质

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

3、python自动化运维——定制业务质

通过psutil和rrdtool模块相结合绘制网卡网络流量                                               实例代码:./cretea.py#!/usr/bin/python   import t
2023-01-31

Python 自动化运维3-Print输

Python语言之Print输出方法Print 输出方法:'-' 表示左对齐'+' 表示正号'0' 表示用0填充'f' 前指定一个最小宽度'.' 指定小数点后的精度格式:% [flag][width][.precision]typecode
2023-01-31

Python自动化运维开发中的流程控制是怎样的

这期内容当中小编将会给大家带来有关Python自动化运维开发中的流程控制是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python自动化运维开发实战流程控制。Python条件语句是通过一条或多条语
2023-06-04

大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

文章目录 ansible 自动化运维工具 详解关于作者作者介绍一、ansible 概述1.1 ansible 概述1.2 是什么要使用 ansible1.3 ansible 功能1.4 ansible 优点1.5 ansible工作
2023-08-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录