首页 > 其他 > 详细

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

时间:2019-11-05 11:19:18      阅读:92      评论:0      收藏:0      [点我收藏+]
#!/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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!