Unix 不是我的母语,我对他们的文件系统概念感到困惑。
当我查看我的可用空间时,我看到:
/$ df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 7.1G 397M 95% /
none 3.7G 120K 3.7G 1% /dev
none 3.7G 4.0K 3.7G 1% /dev/shm
none 3.7G 48K 3.7G 1% /var/run
none 3.7G 0 3.7G 0% /var/lock
/dev/xvdf 100G 19G 82G 19% /db
/dev/xvdg 100G 15G 86G 15% /images
/dev/xvdb 414G 199M 393G 1% /mnt
对我来说,这意味着 /db 下的所有文件和目录都在文件系统 xvdf 上,/images 下的所有内容都在 xvdg 上,/mnt 下的所有内容都在 xvdb 上。其他一切都在 xvda1 上。
然而xvda1只有7.9G的空间。那么为什么
/$ sudo du -sh var
25G var
让我看看 /var 占用了 25G?我一开始以为它可能正在计算符号链接目的地的内容,但我知道下面的几个目录有一个指向 /images 目录的符号链接,并且有 86G 的内容,因此如果遵循符号链接,则 var 应该> 86G。
那么 /var 怎么能在只有 7.9G 的驱动器上占用 25G 呢?
顺便说一句,这是一个在亚马逊 EC2 中运行的 ubuntu 实例(如果这很重要的话)。
答案1
这将为您的麻烦提供正确的答案。
du -ch --最大深度=1 -x /var
-x
将仅显示一个文件系统的数据使用情况,因此跳过 /var 目录中其他文件系统的内容
--max-depth=1
将仅提供第一级的数据使用情况,例如 /var/a /var/b 等
答案2
根据 df 的输出,
/dev/xvdg 100G 15G 86G 15% /图像
/images 中仅使用了 15G。
答案3
确保它var
不是指向任何其他文件系统的符号链接。
/$ ls -ld var
drwxr-xr-x 14 root root 4096 Jun 22 02:13 var
答案4
您也可能需要运行fsck
来修复差异。
我只是为了完整性而提及它,但我仍然怀疑更有可能是其他原因。一段时间后,如果您仍然没有找到任何东西,那么您应该尝试一下。