磁盘已用空间+剩余空间 < 总空间
http://www.microhowto.info/ho…
ext2及之后的文件系统会预留5%空间给root和daemon service防止在磁盘满的情况下系统无法工作。因此无论是使用df
还是statvfs
得到的已使用和剩余空间之和总是小于总大小的——总大小包含了保留空间,而剩余和已使用却不包含。
正确的公式应该是:系统已使用空间 + 系统可用空间 + 系统预留空间 = 文件系统总空间
附赠python版本的df
功能。
def get_df_info(path):
statvfs = os.statvfs(os.path.realpath(path))
total = (statvfs.f_frsize * statvfs.f_blocks) / 1024
available_real = statvfs.f_frsize * statvfs.f_bavail / 1024
available = (statvfs.f_frsize * statvfs.f_bfree) / 1024
used = total - available
return total, used, available_real