服务器磁盘信息,获取服务器磁盘信息并汇总展示

#!/usr/bin/env python

#**** -*- coding: utf-8 -*-

# date:2019-11-04

# liuyuqiang

# function:getting server disk info from server

getbasedata = """

hostname -I|awk ‘{print $1}‘;

df -h|grep data|wc -l;

ls /data*|wc -l;

df -h|grep data|awk ‘{print $2}‘|grep T|sed "s/T//"|xargs|sed ‘s/\s/+/g‘|bc;

df -h|grep data|awk ‘{print $5}‘|sed "s/%//"|xargs|sed ‘s/\s/+/g‘|bc;

df -h|grep data|awk ‘{if ($5>=90) {print $5}}‘|wc -l;

df -h|grep data|awk ‘{if (($5>=80)&&($5<90)) {print $5}}‘|wc -l;

df -h|grep data|awk ‘{if (($5>=70)&&($5<80)) {print $5}}‘|wc -l;

df -h|grep data|awk ‘{if (($5>=60)&&($5<70)) {print $5}}‘|wc -l;

df -h|grep data|awk ‘{if ($5<60) {print $5}}‘|wc -l

"""

try:

# python2

import commands

with open("/tmp/lyq/.getdata.sh", "w") as f:

print >> f, getbasedata

(status, getdata) = commands.getstatusoutput(

"ansible -i /tmp/lyq/iplist all -o -m script -a ‘/tmp/lyq/.getdata.sh‘ |sed ‘s/}//‘|awk -F: ‘{print $NF}‘")

except IOError as err:

print("Error", str(err))

# python3

import subprocess

# with open("/tmp/lyq/.getdata.sh", "w") as f:

## print(getbasedata, file=f)

(status, getdata) = subprocess.getstatusoutput(

"ansible -i /tmp/lyq/iplist all -o -m script -a ‘/tmp/lyq/.getdata.sh‘ |sed ‘s/}//‘|awk -F: ‘{print $NF}‘")

finally:

print("Getting Server base data \n")

with open("/tmp/lyq/.getdata.sh", "w") as f:

print >> f, ""

basedata = []

def format_basedata():

for each_item in getdata.split("\n"):

basedata.append(eval(each_item))

for newitem in basedata:

for i in range(2, 5):

newitem.append(str(float(‘%.2f‘ % (eval(newitem[i]) / eval(newitem[1])))))

#print(newitem)

def get_disk_num():

global type12, type36

type12list = []

type36list = []

type12 = type36 = 0

for newitem in basedata:

if newitem[1] == ‘12‘:

type12 += 1

type12list.append(newitem[0])

elif newitem[1] == ‘36‘:

type36 += 1

type36list.append(newitem[0])

else:

print("New Disk_num!!!", newitem[1])

if len(type12list) > 0:

print("12_disk_server_total_num: {} ".format(type12))

print("12_disk_server_IPlist: ")

print(type12list)

print("\n")

if len(type36list) > 0:

print("36_disk_server_total_num: {} ".format(type36))

print("36_disk_server_IPlist: ")

print(type36list)

print("\n")

def get_single_disk_use_per():

global single_diskgt90, single_diskgt80, single_diskgt70, single_diskgt60, single_disklt60, total_disk_num, total_disk_TB, total_volum, total_diskuse_avg_per, total_diskuse_avg_per_sum

single_diskgt90 = single_diskgt80 = single_diskgt70 = single_diskgt60 = single_disklt60 = total_disk_num = total_disk_TB = total_volum = total_diskuse_avg_per = total_diskuse_avg_per_sum = 0

for newitem in basedata:

total_disk_num += int(eval(newitem[1]))

total_disk_TB += int(eval(newitem[3]))

total_volum += int(eval(newitem[2]))

total_diskuse_avg_per_sum += int(eval(newitem[-1]))

total_diskuse_avg_per = total_diskuse_avg_per_sum / len(basedata)

single_diskgt90 += int(eval(newitem[5]))

single_diskgt80 += int(eval(newitem[6]))

single_diskgt70 += int(eval(newitem[7]))

single_diskgt60 += int(eval(newitem[8]))

single_disklt60 += int(eval(newitem[9]))

print(

"total_disk_num : {} \ntotal_disk_TB : {} \ntotal_volum : {} \ntotal_diskuse_avg_per : {} \nsingle_disk_gt_90: {} \nsingle_disk_gt_80: {} \nsingle_disk_gt_70: {} \nsingle_disk_gt_60: {} \nsingle_disk_lt_60: {} \n".format(

total_disk_num, total_disk_TB, total_volum, float(‘%.2f‘ % total_diskuse_avg_per), single_diskgt90,

single_diskgt80, single_diskgt70, single_diskgt60, single_disklt60))

if __name__ == ‘__main__‘:

format_basedata()

get_disk_num()

get_single_disk_use_per()

"输出结果展示"

Getting Server base data

12_disk_server_total_num: 4

12_disk_server_IPlist:

[‘10.23.13.194‘, ‘12.27.23.16‘, ‘17.127.25.126‘, ‘192.214.160.227‘]

36_disk_server_total_num: 2

36_disk_server_IPlist:

[‘172.24.14.35‘, ‘192.211.16.36‘]

total_disk_num : 120

total_disk_TB : 820

total_volum : 26148

total_diskuse_avg_per : 41.0

single_disk_gt_90: 12

single_disk_gt_80: 0

single_disk_gt_70: 0

single_disk_gt_60: 0

single_disk_lt_60: 108

原文:https://blog.51cto.com/880314/2447693

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值