将zabbix首页复制到a文件里,这里主要是用到首页里 最近出现的问题 的信息

  1. # -*- coding:utf-8 -*-
  2. import time
  3. import os
  4. from openpyxl import Workbook
  5. from openpyxl import load_workbook
  6.  
  7. #获取状态信息
  8. def zabbixdisk():
  9. ip=os.popen("grep 'DiskHealthy' a | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' |sort -t'.' -k1,1nr -k2,2nr -k3,3nr -k4,4nr|uniq").read().split('\n')

  10.   #一个端口重复一次,避免由于异常导致错过正常端口
      zabbixport=['10050','10050']
  11. data=[]
  12. #遍历服务器ip
  13. for i in ip:
  14. if i == '':
  15. continue
  16. name=os.popen("grep -w '%s' a | awk '{print $1}'|uniq"%i).read().replace('\n',"")
  17. num=0
  18. healthy=0
  19. disk=[]
  20. status=[]
  21. errore=[]
  22.  
  23. #遍历端口
  24. while len(zabbixport) > num:
  25. healthy=os.popen("/usr/local/zabbix/bin/zabbix_get -s%s -p%s -k'disk.healthy'"%(i,zabbixport[num])).read()
  26. num=num + 1
  27. if num == len(zabbixport) and healthy == "" :
  28. errore.append(i)
  29. break
  30. elif healthy != "" :
  31. num=len(zabbixport)+1
  32. #将状态信息分类
  33. for ii in healthy.split('\n'):
  34. htmp=[]
  35. for iii in ii.split(' '):
  36. if "/dev" in iii :
  37. disk.append(iii)
  38. else:
  39. htmp.append(iii)
  40. status.append(' '.join(htmp))
  41.  
  42. data.append([i,name,'%s'%'\n'.join(disk).rstrip("\n"),"%s"%'\n'.join(status).rstrip("\n")])
  43. return data,ip,'\n'.join(errore)
  44.  
  45. #获取时间
  46. def newdate(sj):
  47. ISOTIMEFORMAT='%Y-%m-%d %X'
  48. if sj == 'Obtain':
  49. timedate=time.strftime(ISOTIMEFORMAT, time.localtime())
  50. return timedate
  51. else:
  52. timedate=time.strftime(ISOTIMEFORMAT,time.localtime(sj.st_mtime))
  53. return timedate
  54. #写入表格
  55. def exsl(data):
  56. name="sample-%s.xlsx"%newdate('Obtain').replace(' ','').replace(':','')
  57. wb = Workbook()
  58.  
  59. # grab the active worksheet
  60. ws = wb.active
  61.  
  62. # Data can be assigned directly to cells
  63. ws['A1'] = 'IP'
  64. ws['B1'] = 'HostName'
  65. ws['C1'] = 'Disk'
  66. ws['D1'] = 'status'
  67. for i in data:
  68.  
  69. # Rows can also be appended
  70. ws.append([i[0], i[1], i[2], i[3] ])
  71. # Save the file
  72. wb.save("/tmp/%s"%name)
  73.  
  74. return "/tmp/%s"%name
  75.  
  76. data,ip,error =zabbixdisk()
  77. print "The number of servers that have detected a total hard disk: %s"%(len(ip)-1)
  78. print "ZABBIX access to the number of: %s"%len(data)
  79. if len(ip)-1 > len(data):
  80. print "The following IP failed to succeed: \n%s"%error
  81. print exsl(data)

zabbix 硬盘状态收集,制作表格的更多相关文章

  1. ul+li标签制作表格

    table标签制作表格代码繁琐,且不方便后期代码维护. li标签加上css的浮动样式可以制作多种样式的表格. 代码如下: <ul id="ttttt" style=" ...

  2. HTML编辑模式下制作表格

    前面有朋友问如何做图文并茂的音乐帖子,的确音乐能以表格式做出来,更能让人过目不忘,何况帖子制作过程本身就是创作,包含了制作人对音乐的理解和爱好.以下简单介绍用代码HTML制作表格,希望对大家有所帮助. ...

  3. iOS 制作表格 (数据源控制行,列数)

    记得去年面试的过程中,有一个面试官问我怎么制作表格.由于之前也没有做过,当时有点懵逼,今天想起来了,就用tableview制作了一个,望不要有人像我一样掉坑了, 直接上代码: // // ViewCo ...

  4. [Swift通天遁地]二、表格表单-(4)使用系统自带的下拉刷新控件,制作表格的下拉刷新效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. 优雅地使用 C++ 制作表格:tabulate

    作者:HelloGitHub-ChungZH 0x00 介绍 tabulate tabulate 是一个使用 C++ 17 编写的库,它可以制作表格.使用它,把表格对齐.格式化和着色,不在话下!你甚至 ...

  6. 带你了解zabbix整合ELK收集系统异常日志触发告警~

    今天来了解一下关于ELK的“L”-Logstash,没错,就是这个神奇小组件,我们都知道,它是ELK不可缺少的组件,完成了输入(input),过滤(fileter),output(输出)工作量,也是我 ...

  7. mogadm修改硬盘状态

    #查看主机序列mogadm host list #查看空间快满的分区 df -h#检查硬盘序列和状态ls -l /data/mogile_data/ #查看mogadm目录下软链接的目录对应的分区 # ...

  8. 【Zabbix】在CentOS 7上搭建Zabbix服务,收集Windows客户端计数器性能数据(含过程中遇到的问题解决方法)

    1.环境 1.1.关闭防火墙 命令:systemctl stop firewalld 或者 systemctl stop firewalld.service (备注:相应的,若要开启防火墙,将对应的& ...

  9. 一个快速制作表格的方法,和熬夜做表say拜拜

    如今已是大数据时代了,统计工作是非常繁琐的一项工作,通常统计老师为了录单工作到下半夜或者是通宵,现在有了很多制作表单的软件,可以大大减轻基层统计老师的工作量,也增加了会员资料的保密性,给我们统计工作带 ...

随机推荐

  1. 大话目标检测经典模型(RCNN、Fast RCNN、Faster RCNN)

      目标检测是深度学习的一个重要应用,就是在图片中要将里面的物体识别出来,并标出物体的位置,一般需要经过两个步骤:1.分类,识别物体是什么 2.定位,找出物体在哪里 除了对单个物体进行检测,还要能支持 ...

  2. PHP.23-ThinkPHP框架的三种模型实例化-(D()方法与M()方法的区别)

    三种模型实例化 原则上:每个数据表应对应一个模型类(Home/Model/GoodsModel.class.php --> 表tp_goods) 1.直接实例化 和实例化其他类库一样实例化模型类 ...

  3. 4 CSS的20/80个知识点

    1.css的基本构成 样式选择器 id选择器 元素选择器 2.css的盒模型 border padding margin 3.Atom快捷键 4.程序 (1)初始程序 <!DOCTYPE htm ...

  4. HTTP的缓存控制

    1.缓存的分类: (1)缓存分为服务端侧(server side,比如 Nginx.Apache)和客户端侧(client side,比如 web browser). (2)服务端缓存又分为 代理服务 ...

  5. 获取IMSI

    转:http://letsunlockiphone.guru/find-imsi-number/ HOW TO FIND IMSI NUMBER (UPDATED) You probably alre ...

  6. 常用模块(string)

    import string# dt = string.digits # 获取0-9的数字# dt = string.ascii_letters # 获取所有的大小写字母# dt = string.he ...

  7. jenkins构建定时任务

    jenkins构建定时任务的主要两种形式 1.Build periodically:周期性构建项目,无论有没有代码更新到时间都会构建项目 2.Poll SCM:定时检查源码变更(根据SCM软件的版本号 ...

  8. 孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数

    孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目 ...

  9. 1079 Total Sales of Supply Chain (25 分)(树的遍历)

    给出一颗销售供应的树,树根唯一.在树根处货物的价格为p,然后从根节点开始没往结点走一层,该层的货物价格将会在父节点的价格上增加r%.给出每个叶节点的货物量求出他们的价格之和 #include<b ...

  10. SQL查询oracle的nclob字段

    使用CONTAINS关键字查询NCLOB字段 SELECT  FORMATTED_MESSAGE    FROM     TBL_LOG WHERE     CONTAINS(FORMATTED_ME ...