博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python日常运维脚本
阅读量:6907 次
发布时间:2019-06-27

本文共 3675 字,大约阅读时间需要 12 分钟。

1    扫描Windows系统CPU、内存、磁盘利用率

1.1    实现代码

#!usr/bin/env python#-*- coding:utf-8 _*-"""@author:T-guoh@file: server_monitor.py@time: 2019/03/18"""import psutilimport osimport socketcpu = {
'user':0,'system':0,'idle':0,'percent':0}mem = {
'total' : 0, 'avaiable' : 0, 'percent' : 0, 'used' : 0, 'free' : 0}disk_id = []disk_total = []disk_used = []disk_free = []disk_percent = []#获取CPU信息def get_cpu_info(): cpu_times = psutil.cpu_times() cpu['user'] = cpu_times.user cpu['system'] = cpu_times.system cpu['idle'] = cpu_times.idle cpu['percent'] = psutil.cpu_percent(interval=2)#获取Memory信息def get_mem_info(): mem_info = psutil.virtual_memory() mem['total'] = mem_info.total mem['avaiable'] = mem_info.available mem['percent'] = mem_info.percent mem['used'] = mem_info.percent mem['free'] = mem_info.free#获取Disk信息def get_disk_info(): for id in psutil.disk_partitions(): if 'cdrom' in id.opts or id.fstype == '': continue disk_name = id.device.split(':') s = disk_name[0] disk_id.append(s) disk_info = psutil.disk_usage(id.device) disk_total.append(disk_info.total) disk_used.append(disk_info.used) disk_percent.append(disk_info.percent) disk_free.append(disk_info.free)#定义主函数def main(): get_cpu_info() cpu_status = cpu['percent'] get_mem_info() mem_status = mem['percent'] hostname = os.environ['COMPUTERNAME'] username = os.environ['USERNAME'] ip_addr = socket.gethostbyname(hostname) print('======基本信息======') print('主机名:'+ hostname+ '\nIP地址:' + ip_addr + '\n用户名:' + username) print('====================') print('\n=====资源使用率=====') print('CPU使用率:%s %%' % cpu_status) print('Mem使用率:%s %%' % mem_status) get_disk_info() for i in range(len(disk_id)): print('%s盘空闲率:%s %%' % (disk_id[i], round(100 - disk_percent[i], 2))) print('====================') os.system('pause')if __name__ == '__main__': main()

1.2    运行结果

2    扫描Windows系统Top目录与文件大小

2.1    实现代码

#!usr/bin/env python#-*- coding:utf-8 _*-"""@author:T-guoh@file: server_monitor.py@time: 2019/03/18"""import os#统计指定目录下各个文件夹的大小,方便观察具体目录的大小def CountDirSize(srcDir):    dirSizeDict = {}    fileSizeDict = {}    for fileList in os.listdir(srcDir):        filePath = os.path.join(srcDir,fileList)        if os.path.isdir(filePath):            size = 0            for roots,dirs,files in os.walk(filePath):                for fileName in files:                    fileNamePath = os.path.join(roots,fileName)                    sizetemp = 0                    try:                        sizetemp = os.path.getsize(fileNamePath)                        if sizetemp > 1024*1024:                            fileSizeDict[fileNamePath] = sizetemp                    except:                        sizetemp = 0                    size += sizetemp            dirSizeDict[fileList] = size    #按照从大到小的顺序降序排列    dirSizeDict = sorted(dirSizeDict.items(),key = lambda dirSizeDict:dirSizeDict[1],reverse = True)    Sum = 0    #各个目录占用空间    print("Each directory takes up space:")    for ele in dirSizeDict:        temp = ele[1]/1024/1024        Sum += temp        #以单位为M,输出大小        print(ele[0] + ":" + str(temp) + " M")    #以单位为G,输出大小    print("Total use:" + str(Sum / 1024) +" G")    print("")    #前20个大文件占用空间    print("Top 20 large file takes up space:")    fileSizeDict = sorted(fileSizeDict.items(),key = lambda fileSizeDict:fileSizeDict[1],reverse = True)    for ele in fileSizeDict[:20]:        print(ele[0] + ":" +str(ele[1]/1024/1024) + " M")if __name__ == "__main__":    srcDir = "c:\\"    CountDirSize(srcDir)

2.2    运行结果

 

转载于:https://www.cnblogs.com/Wolf-Dreams/p/10693429.html

你可能感兴趣的文章
linux shell基础
查看>>
Android中的Animation 动画开发
查看>>
KVM 基础使用(一)
查看>>
怎么将Emeditor设置成网页查看源代码的默认编译器
查看>>
higncharts 编辑Highcharts.com链接
查看>>
ThinkPHP 模板显示display和assign的用法
查看>>
AfxMessageBox和MessageBox差别
查看>>
OpenCms创建站点过程图解——献给OpenCms的刚開始学习的人们
查看>>
PyQt5在QWidget窗体中显示Qwidget的自定义类(补:完美解决)
查看>>
一个非常好用的中文语音播报接口
查看>>
USB Host的上拉下拉电阻
查看>>
读书笔记系列之java性能优化权威指南 一 第一章
查看>>
结构体 typedef关键字
查看>>
Android设备连接Unity Profiler性能分析器
查看>>
PL/SQL中复制中文再粘贴出现乱码问题的解决【转】
查看>>
【分享】博客美化(8)让你的博客“推荐按钮”动起来
查看>>
javascript prototype
查看>>
Linux 上的基础网络设备详解
查看>>
到底是否应该重复造轮子
查看>>
c 从语言中的内存管理
查看>>