du 和 df以及lsof

du:disk usage

通过搜索文件来计算每个文件的大小然后累加得到的值。

df:disk free

通过文件系统来获取空间大小的信息。

如果用户删除了一个正在运行的应用程序所打开的某个目录下的文件:

  • du命令返回的值,显示出减去了该文件后的总大小
  • df命令返回的值,则不显示减去该文件后的大小(文件句柄还在被使用),直到该运行的应用程序关闭了这个打开的文件(才会真正释放空间)

常见的场景是,删除了一个很大的正在写入的tomcat的access日志,du显示的结果会把日志大小减去,而df则仍会包含该日志的大小(实际上tomcat仍引用了该文件的句柄)。

对我们的启示是,如果要删除某个access日志,不要粗暴的rm,而要温柔的:

echo "" > access.log

如何发现被应用程序引用着“已删除”文件呢?

lsof -n |grep deleted

lsof简介lsof(list open files)是一个列出当前系统打开文件的工具。

猜你喜欢

转载自blog.csdn.net/qq_29996285/article/details/84847435