今天遇到一个奇怪的问题,一开始我

df -lh /

命令查看系统时发现可用空间为0,于是删除掉了一些tomcat日志,此时如果用

du -sh /

会发现文件使用空间已经小了,但是如果再用

df -lh /

命令查看时,还是几乎不变,非常邪门,两者大小相差几个G,后来网上看到一些文章,发现这种情况也是有可能的,因为df是根据文件块来计算的,而du则根据文件结构来计算大小的,两者的结果可能有差异,比如当文件被删除了,但是对应的进程却还活着,导致文件系统的空间没有释放.这种情况下可以用

lsof |grep deleted

看到哪些进程占用着被删除的文件,把对应的进程干掉就能释放出这些空间了。

- EOF -