Linux df和du命令查出来的已使用空间不同怎么办

  有用户登录到Linux系统服务器上查看的时候,竟然发现df和du查出来的结果不一样,du查出来的“实际使用空间”明显比df查出来的已使用空间要小很多,这是究竟是怎么一回事呢?难道有些空间被隐藏起来了?下面来说一下df和du命令查出来的已使用空间不同的解决方法。

    方法如下:

  首先,我们用df来查看已使用空间:



  从上图可知,根分区已使用5456700KB(合约5.20GB)。

  然后,我们用du查出根分区下每个目录的大小:



  排除红框中的两个目录(因为他们是挂载上去的),所有目录的总大小为3075332KB(合约2.93GB),比df查出来足足小了2.27GB。

    为什么会少了这么多空间呢?

  其实是因为我们之前删除了一些进程正在写入的文件,虽然已经被我们删除了,但只要进程还在,那个文件就不会被真正地删除,只是被临时存放到系统的某个地方而已,有点类似于Windows的回收站。

  想解决这个问题,最简单地就是重启服务器了,但是生产环境一般都不会轻易重启的,所以我们可以通过其他方式来解决。

  先用lsof命令配合grep命令查出哪些是已经被删除,却依旧占用系统空间的“无赖”。



  上图红框中的文件正是我之前删除的一个大文件,我现在尝试去重启这个程序(node),我直接kill掉这个进程,因为我做了自动启动,所以我不用手动去启动它。



  已使用空间一下子下降到3226324KB(合约3.08GB),已经很接近du统计的总空间了。

  接下来,我逐个重启了其他deleted的文件,最终df查出来的大小就和du统计的总空间差不多大了。

  到此,就解决了df和du查出来的结果不同的文件,赶走了系统里的“无赖”,索回属于我们的空间。

  df和du命令查出来的已使用空间不同的解决方法就说到这里了,如你们也有此问题的可以按照上述的步骤去操作,从而解决问题。

(0)

相关推荐

  • linux下使用du命令查找最大的文件的命令

    找出在一个path下的最大文件,可以使用du命令: du -sh[dirname|filename] 当前目录大小 du -sh. 当前目录下文件或目录的大小 du -sh* 显示前十个占用空间最大的 ...

  • 解析Linux系统安全的命令

    虽然Linux和Windows NT/2000系统一样是一个多用户的系统,但是它们之间有不少重要的差别。对于很多习惯了Windows系统的管理员来讲,如何保证Linux操作系统安全、可靠将会面临许多新 ...

  • linux系统中scp命令的使用介绍

    scp命令的用处: scp在网络上不同的主机之间复制文件,它使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远程拷贝文件。 scp命令基本格式: scp [-1246BCpqrv] ...

  • linux中mkdir创建目录命令使用说明

    阅读这篇文章之前建议大家先看下这篇文章:http://www./LINUX/mkdir.htm 1.命令格式: mkdir [选项] 目录... 2.命令功能: 通过 mkdir 命令可以实现在指定位 ...

  • Linux开机启动chkconfig命令详解(让MySQL.Apache开机启动)

    chkconfig chkconfig在命令行操作时会经常用到。它可以方便地设置和查询不同运行级上的系统服务。这个可要好好掌握,用熟练之后,就可以轻轻松松的管理好你的启动服务了。 注:谨记chkcon ...

  • 在windws下模拟Linux下可获取命令执行时间的time命令

    Linux 下的 time 命令可以获取命令执行时间,Windows 下并没有类似的命令,我们可以自力更生写一个批处理,命名为time.bat。 [plain] @echo off set /a St ...

  • Linux中使用file命令识别文件类型默认没有扩展名

    在Linux系统操作过程中,没有扩展名的文件难以识别,我们可以使用命令来识别文件类型,下面小编就给大家介绍下如何使用file命令来识别文件类型。 我们知道Linux文件系统是Linux内核支持的基本功 ...

  • windows下的类似linux下的grep命令--findstr

    windows下的类似linux下的grep命令——findstr 经常用linux下的grep命令,比如: netstat -an|grep 1521 其实windows下也有一个类似的命令find ...

  • Linux下常用cvs命令整理

    Linux下常用cvs命令整理