Linux

df 顯示使用的負值?

  • December 9, 2020

我有一個 CentOS 5.2 伺服器並執行df -h我得到這個:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                     672G -551M  638G   0% /
/dev/hda1              99M   12M   82M  13% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm

上次顯示正確值時,該空間的使用率甚至不到 10%。我不知道發生了什麼。

編輯#1

好的,所以我不得不重新啟動伺服器,因為 SSHD 掛了,我猜這與此有關。

重新啟動後,一些新資訊df -h顯示已使用 12Gb (2%),但如果我執行du -hcs /它顯示總共 46Gb,則這裡有很大的不同。

編輯#2

大約 15 分鐘的正常執行時間後df -h再次顯示負值:

Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/VolGroup00-LogVol00
                     672G  -24G  660G   -  /

編輯#3

更多資訊,執行 afsck這是輸出:

Checking all file systems.
 [/sbin/fsck.ext3 (1) -- /] fsck.ext3 -f -y /dev/VolGroup00/LogVol00 
Pass 1: Checking inodes, blocks, and sizes 
Pass 2: Checking directory structure 
Pass 3: Checking directory connectivity 
Pass 4: Checking reference counts 
Pass 5: Checking group summary information
/dev/VolGroup00/LogVol00: 204158/181633024 files (1.3% non-contiguous), 9224806/181633024 blocks 
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -f -y /dev/hda1 
Pass 1: Checking inodes, blocks, and sizes 
Pass 2: Checking directory structure 
Pass 3: Checking directory connectivity 
Pass 4: Checking reference counts 
Pass 5: Checking group summary information 
/boot: 34/26104 files (5.9% non-contiguous), 15339/104388 blocks

我認為這是文件系統損壞。您應該解除安裝分區並執行 fsck。

還要檢查日誌和控制台是否有任何文件系統錯誤。

我認為這可能意味著您已經超出了保留為僅根空間的範圍(我認為 ext3 上的預設值為 5%):

$ sudo tune2fs -l /dev/sda1 | grep -i 'Reserved block count'
Reserved block count:     1877194

保留塊計數是磁碟快滿後只有 root 使用者可以使用的一定數量的塊(這可以防止普通使用者填滿 fs 並導致事情中斷)。來自man tune2fs

   -m reserved-blocks-percentage 

設置只能由特權程序分配的文件系統的百分比。保留一定數量的文件系統塊供特權程序使用是為了避免文件系統碎片,並允許系統守護程序(例如 syslogd(8))在阻止非特權程序寫入文件系統後繼續正常執行。通常,保留塊的預設百分比是 5%。

所以我認為某些東西作為 root 使用者正在快速佔用空間。您可以使用du -hcs /並從那裡向下鑽取以查找正在使用空間的文件的位置。如果您認為這可能是創建大文件的原因,您也可以使用該find命令。

引用自:https://serverfault.com/questions/150982