六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 63|回复: 0

python获得磁盘剩余空间 statvfs

[复制链接]

升级  96%

12

主题

12

主题

12

主题

童生

Rank: 1

积分
48
 楼主| 发表于 2013-1-28 19:00:55 | 显示全部楼层 |阅读模式
在linux上工作大家都会用到df命令

[tommy@tommy-1 ~]$ df -hFilesystem            Size  Used Avail Use% Mounted on/dev/sda5             4.8G  389M  4.2G   9% //dev/sda7             271G  3.5G  254G   2% /home/dev/sda3             4.8G  1.1G  3.5G  24% /usr/dev/sda2             4.8G  199M  4.3G   5% /var/dev/sda1              99M   18M   77M  19% /boottmpfs                 997M     0  997M   0% /dev/shm

这个df命令有个问题,即是磁盘的某个卷有问题,比如offline了
那么很有可能就是当你执行df命令的时候,就挂掉了,

在开发一个系统中,需要随时获得指定磁盘的剩余空间的功能
(如果使用df,很有可能会导致程序block在那里)

所以,我们这里使用python自带的statvfs模块来完成侦测磁盘剩余空间的功能

参考
http://docs.python.org/library/statvfs.html
http://docs.python.org/library/os.html

[mps@mps-1 ~]$ pythonPython 2.4.3 (#1, Sep  3 2009, 15:37:37)[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import os>>> import statvfs>>> vfs=os.statvfs("/home")>>> vfs(4096, 4096, 70959944, 70058799, 66396080, 73269248, 73234981, 73234981, 0, 255)>>> dir(statvfs)['F_BAVAIL', 'F_BFREE', 'F_BLOCKS', 'F_BSIZE', 'F_FAVAIL', 'F_FFREE', 'F_FILES', 'F_FLAG', 'F_FRSIZE', 'F_NAMEMAX', '__builtins__', '__doc__', '__file__', '__name__']>>> available=vfs[statvfs.F_BAVAIL]*vfs[statvfs.F_BSIZE]/(1024*1024*1024)>>> available253>>> capacity=vfs[statvfs.F_BLOCKS]*vfs[statvfs.F_BSIZE]/(1024*1024*1024)>>> capacity270>>> used=capacity-available>>> used17>>>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表