我使用带有 LVM2 的 RHEL4。有时,即使删除超过 GB 的大文件,使用该df
命令时分区大小也不会更新。
-bash-3.00$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/sys-root 3.9G 1.4G 2.3G 39% /
/dev/cciss/c0d0p1 251M 19M 219M 8% /boot
/dev/mapper/sys-home 250G 125G 113G 53% /home
/dev/mapper/sys-tmp 3.9G 41M 3.7G 2% /tmp
/dev/mapper/sys-var 3.9G 3.6G 98M 98% /var
但是当我使用 du 检查时它显示了正确的大小
-bash-3.00$ sudo du -sh /var/
179M /var/
您可以看到 df 输出显示 /var 分区已使用 3.6Gb,但 du 显示它只有 179Mb。
现在的问题是sync或partprobe都没有更新信息。但重启主机肯定可以解决问题。但由于这是生产服务器,我无法重新启动它。有什么方法可以在不重新启动主机的情况下手动更新磁盘信息?
答案1
当文件被删除/删除/取消链接时,如果任何进程仍将其保持打开状态,则仅删除该文件的目录条目,而不是文件的数据。当文件被所有进程完全关闭时,数据将返回到可用空间池。这是一项功能,因为您可以通过这种方式拥有匿名文件。
要查看文件系统上是否有任何打开的已删除文件,请运行以下命令之一,/mount/point
安装点在哪里(/var
在您的情况下):
lsof +L1 /mount/point
这关于打开的未链接文件的文章应该有助于进一步解释这一点。