我有一台 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
更多信息,运行了fsck
,这是输出:
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
答案1
我认为这是文件系统损坏。您应该卸载分区并运行 fsck。
还请检查日志和控制台是否存在任何文件系统错误。
答案2
我认为这可能意味着您已经超出了仅保留为根的空间(我认为 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
命令。