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

# -*- coding:utf-8 -*-
import time
import os
from openpyxl import Workbook
from openpyxl import load_workbook #获取状态信息
def zabbixdisk():
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')

  #一个端口重复一次,避免由于异常导致错过正常端口
  zabbixport=['10050','10050']
data=[]
#遍历服务器ip
for i in ip:
if i == '':
continue
name=os.popen("grep -w '%s' a | awk '{print $1}'|uniq"%i).read().replace('\n',"")
num=0
healthy=0
disk=[]
status=[]
errore=[] #遍历端口
while len(zabbixport) > num:
healthy=os.popen("/usr/local/zabbix/bin/zabbix_get -s%s -p%s -k'disk.healthy'"%(i,zabbixport[num])).read()
num=num + 1
if num == len(zabbixport) and healthy == "" :
errore.append(i)
break
elif healthy != "" :
num=len(zabbixport)+1
#将状态信息分类
for ii in healthy.split('\n'):
htmp=[]
for iii in ii.split(' '):
if "/dev" in iii :
disk.append(iii)
else:
htmp.append(iii)
status.append(' '.join(htmp)) data.append([i,name,'%s'%'\n'.join(disk).rstrip("\n"),"%s"%'\n'.join(status).rstrip("\n")])
return data,ip,'\n'.join(errore) #获取时间
def newdate(sj):
ISOTIMEFORMAT='%Y-%m-%d %X'
if sj == 'Obtain':
timedate=time.strftime(ISOTIMEFORMAT, time.localtime())
return timedate
else:
timedate=time.strftime(ISOTIMEFORMAT,time.localtime(sj.st_mtime))
return timedate
#写入表格
def exsl(data):
name="sample-%s.xlsx"%newdate('Obtain').replace(' ','').replace(':','')
wb = Workbook() # grab the active worksheet
ws = wb.active # Data can be assigned directly to cells
ws['A1'] = 'IP'
ws['B1'] = 'HostName'
ws['C1'] = 'Disk'
ws['D1'] = 'status'
for i in data: # Rows can also be appended
ws.append([i[0], i[1], i[2], i[3] ])
# Save the file
wb.save("/tmp/%s"%name) return "/tmp/%s"%name data,ip,error =zabbixdisk()
print "The number of servers that have detected a total hard disk: %s"%(len(ip)-1)
print "ZABBIX access to the number of: %s"%len(data)
if len(ip)-1 > len(data):
print "The following IP failed to succeed: \n%s"%error
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. 1,Python常用库之一:Numpy

    Numpy支持大量的维度数组和矩阵运算,对数组运算提供了大量的数学函数库! Numpy比Python列表更具优势,其中一个优势便是速度.在对大型数组执行操作时,Numpy的速度比Python列表的速度 ...

  2. 多个".h"文件中声明及定义 全局变量和函数

    一.".h"文件必须以如下格式书写 例:文件<CZ_efg_hi.h"> ------------文件内容----------- #ifndef CZ_Efg ...

  3. MySQL单表查询语句练习题

    /*1. 查询出部门编号为30的所有员工*/ /* 分析: 1). 列:没有说明要查询的列,所以查询所有列 2). 表:只一张表,emp 3). 条件:部门编号为30,即deptno=30 */ ; ...

  4. 如何写一套下拉刷新的控件?《MJRefresh原理浅析》(附Demo下载地址)

    相信大家有很多人在做项目的时候都在使用MJRefresh 控件来实现下拉刷新的功能: MJRefresh经过不断的重构与更新迭代,现在不管是功能上还是代码结构上都是相当不错的,都是很值我们去学习的. ...

  5. 关于safaire下hash前面需要加/(正斜杠)

    就是我们1.1框架是根据hash跳转的,今天我2.0跳转到1.1,pc一直测下来都是好的, 然后发现手机上一直跳转有问题,然后排查了半小时左右才发现  hash前面需要加/ 分割. 例如:http:/ ...

  6. 《Cracking the Coding Interview》——第18章:难题——题目7

    2014-04-29 03:05 题目:给定一个词典,其中某些词可能能够通过词典里其他的词拼接而成.找出这样的组合词里最长的一个. 解法:Leetcode上有Word Break这道题,和这题基本思路 ...

  7. Linux认知之旅【03 进一步了解Linux命令】!

    再仔细的研究一下命令,你会进一步提高提高对Linux的操作! 看完本文有空http://man.linuxde.net/转转!这是个好网站! 一.命令是什么? 计算机术语[command]:形容在对计 ...

  8. Scala 基础(1)—— 定义变量 & 定义函数

    1. 使用 val & var 定义变量 Scala 中的变量被分为2种:val 和 var.其含义于 Java 中的 final 关键字类似. val 等同于被 final 修饰过的变量, ...

  9. Bsd内核选项总结

    Bsd内核选项总结 一: 下面这个选项在每个内核中都要有: machine i386 它指明了机器的硬件体系结构.它必须是i386, pc98, sparc64, alpha, ia64, amd64 ...

  10. GCC 中 -L、-rpath和-rpath-link的区别

    GCC 中 -L.-rpath和-rpath-link的区别 来源 http://blog.csdn.net/q1302182594/article/details/42102961 关于这3个参数的 ...