sunren 发表于 2017-4-29 10:02:28

python获得磁盘剩余空间 statvfs

在linux上工作大家都会用到df命令
$ df -h
Filesystem            SizeUsed Avail Use% Mounted on
/dev/sda5             4.8G389M4.2G   9% /
/dev/sda7             271G3.5G254G   2% /home
/dev/sda3             4.8G1.1G3.5G24% /usr
/dev/sda2             4.8G199M4.3G   5% /var
/dev/sda1            99M   18M   77M19% /boot
tmpfs               997M   0997M   0% /dev/shm


这个df命令有个问题,即是磁盘的某个卷有问题,比如offline了
那么很有可能就是当你执行df命令的时候,就挂掉了,
在开发一个系统中,需要随时获得指定磁盘的剩余空间的功能
(如果使用df,很有可能会导致程序block在那里)
所以,我们这里使用python自带的statvfs模块来完成侦测磁盘剩余空间的功能
参考
http://docs.python.org/library/statvfs.html
http://docs.python.org/library/os.html
$ python
Python 2.4.3 (#1, Sep3 2009, 15:37:37)
on linux2
Type "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*vfs/(1024*1024*1024)
>>> available
253
>>> capacity=vfs*vfs/(1024*1024*1024)
>>> capacity
270
>>> used=capacity-available
>>> used
17
>>>
页: [1]
查看完整版本: python获得磁盘剩余空间 statvfs