通过python查出服务器磁盘容量

简介:
#coding:utf-8
import os  
from collections import namedtuple  
  
disk_ntuple = namedtuple('partition',  'device mountpoint fstype')  
usage_ntuple = namedtuple('usage',  'total used free percent')  
#获取当前操作系统下所有磁盘  
def disk_partitions(all=False):  
    """Return all mountd partitions as a nameduple. 
    If all == False return phyisical partitions only. 
    """  
    phydevs = []  
    f = open("/proc/filesystems", "r")  
    for line in f:  
        if not line.startswith("nodev"):  
            phydevs.append(line.strip())  
  
    retlist = []  
    f = open('/etc/mtab', "r")  
    for line in f:  
        if not all and line.startswith('none'):  
            continue  
        fields = line.split()  
        device = fields[0]  
        mountpoint = fields[1]  
        fstype = fields[2]  
        if not all and fstype not in phydevs:  
            continue  
        if device == 'none':  
            device = ''  
        ntuple = disk_ntuple(device, mountpoint, fstype)  
        retlist.append(ntuple)  
    return retlist  
#统计某磁盘使用情况,返回对象  
def disk_usage(path):  
    """Return disk usage associated with path."""  
    st = os.statvfs(path)  
    free = (st.f_bavail * st.f_frsize)  
    total = (st.f_blocks * st.f_frsize)  
    used = (st.f_blocks - st.f_bfree) * st.f_frsize  
    try:  
        percent = ret = (float(used) / total) * 100  
    except ZeroDivisionError:  
        percent = 0  
    # NB: the percentage is -5% than what shown by df due to  
    # reserved blocks that we are currently not considering:  
    # http://goo.gl/sWGbH  
    return usage_ntuple(total, used, free, round(percent, 1)) 
print disk_partitions()

def getPath():
    """
    获取磁盘的分区
    """
    disklist = []
    list = disk_partitions()
    for i in list:
    disklist.append(i[1])
    return disklist
#pathlist = getPath()
#print "path list is ....%s" % pathlist
#print disk_usage('/home')
def getDiskTotal():
    """
    获取磁盘总的大小
    """
    newpathlist = []
    pathlist = []
    pathlist = getPath()
    print "pathlist type is %s ,and the pathlist value is %s" % (type(pathlist),pathlist)
    pathlist.append("/dev/shm/")
    totalDiskList = []
#    print newpathlist
    sum = 0
    for path in pathlist:
        disktotal = disk_usage(path)[0] / 1073741824 + 1
        totalDiskList.append(disktotal)
    for count in totalDiskList:
        sum += count
    print sum

getDiskTotal()

本文转自 luoguo 51CTO博客,原文链接:http://blog.51cto.com/luoguoling/1876585


相关文章
|
1天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
13 6
|
2天前
|
运维 数据挖掘
服务器数据恢复—RAID5磁盘阵列2块盘离线的数据恢复案例
服务器中有一组由多块硬盘组建的raid5磁盘阵列,服务器阵列中2块硬盘先后掉线导致服务器崩溃。
服务器数据恢复—RAID5磁盘阵列2块盘离线的数据恢复案例
|
16天前
|
机器学习/深度学习 数据挖掘 Python
使用Python实现简单的Web服务器
使用Python内置的http.server模块,本文演示了创建基本Web服务器的步骤。通过编写简单的代码,实现响应GET请求并返回“Hello, World!”。此外,还展示了如何扩展服务器功能,处理不同URL路径,如根路径和/about路径,并实现404错误页面。这个基础教程为理解HTTP服务器原理和Python网络编程入门提供了帮助。对于复杂Web应用,建议使用Flask或Django等高级框架。
|
18天前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
22 0
|
24天前
|
缓存 中间件 数据安全/隐私保护
在Python中实现代理服务器的配置和使用方法
在Python中实现代理服务器的配置和使用方法
|
28天前
|
缓存 运维 Linux
保姆级python项目离线部署服务器教程只需这一篇就够了(建议收藏)
这篇文章提供了详尽的Python项目在离线Linux(CentOS)服务器上的部署教程。作者首先介绍了环境背景,强调了无网络环境和使用有网络的CentOS虚拟机准备安装包的重要性。教程分为两部分:外网环境搭建和内网离线安装。在外网环境中,包括下载Python 3.9.0安装包、传输至服务器、安装依赖包,并使用pip3下载项目所需依赖。内网安装则涉及依赖包的复制和Python环境的同样步骤。最后,作者分享了运行项目的命令,并总结了离线安装的整个流程,提醒读者注意可能出现的问题。
保姆级python项目离线部署服务器教程只需这一篇就够了(建议收藏)
|
10天前
|
存储 弹性计算 固态存储
阿里云服务器CPU内存配置详细指南,如何选择合适云服务器配置?
阿里云服务器配置选择涉及CPU、内存、公网带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型e实例,如2核2G3M配置,适合低流量网站。企业用户则应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。选择时考虑实际应用需求和性能稳定性。
114 6
|
1天前
|
负载均衡 固态存储 Linux
阿里云轻量应用服务器、云服务器、gpu云服务器最新收费标准参考
轻量应用服务器、云服务器、gpu云服务器是阿里云服务器产品中,比较热门的云服务器产品类型,不同类型的云服务器产品收费模式与收费标准是不一样的,本文为大家展示这几个云服务器产品的最新收费标准情况,以供参考。
阿里云轻量应用服务器、云服务器、gpu云服务器最新收费标准参考
|
1天前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
6 0
|
1天前
|
存储 弹性计算 监控
探索阿里云弹性计算:如何优化云服务器ECS的性能与成本
在云时代,【阿里云ECS】的性能优化与成本控制至关重要。利用实例规格选择、自动伸缩、网络和存储配置,可增强性能、减少成本。结合监控工具和优化建议,用户能解决性能问题,提升应用稳定性,实现高效且经济的云计算运营。
7 1