我很困惑有關Unix df
命令如何達到用於文件系統的百分比。這裏有一個小劇本我寫了獨立運行df
,找出相同的信息:df百分比使用神祕
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.0 (Santiago)
$ cat dftest.py
#! /usr/bin/python
import sys
import os
import subprocess
def reportUsage(label, total, free):
used = total - free
print "%s=%dK, used=%dK (%d%%)" % (label, free, used, used*100/total)
p = subprocess.Popen(["df", "-k", "."], stdout=subprocess.PIPE)
print p.stdout.read()
rc = p.wait()
stat = os.statvfs(".")
total = (stat.f_bsize * stat.f_blocks)/1024
free = (stat.f_bsize * stat.f_bfree)/1024
avail = (stat.f_bsize * stat.f_bavail)/1024
print "Total=%dK" % total
reportUsage("Free", total, free)
reportUsage("Avail", total, avail)
$ ./dftest.py
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda4 20158332 3930688 15203644 21% /home
Total=20158332K
Free=16227644K, used=3930688K (19%)
Avail=15203644K, used=4954688K (24%)
$
所以總字節數,可用空間(unprivledged)相匹配,並用空間(基於自由空間)的所有比賽。精彩!那麼df
如何報告21%使用?我認爲它應該報告19%,因爲這是多少使用。我錯過了什麼?這不僅僅是一個舍入誤差,是嗎?
快速谷歌搜索'http:// larsmichelsen.com/open-source/answer-why-does-df-k-show-wrong-percentage-usage /' –
@Jidder您的鏈接不起作用。 –
@ Lu.nemec似乎在百分比之後加了兩個字符,不知道爲什麼,我認爲它在我第一次發佈時就起作用了。無論如何,只需從網址中刪除它們並將其放到正確的位置。 –