> Linux教程 > 系统运维 >

Linux主机df和du出来的文件和磁盘大小不相同

df 查看磁盘大小和使用空间的命令 常用的是df -h

du 查看文件或者文件夹大小的命名  常用的是du -sh *

一、问题现象的陈述

1、先列出df的结果

# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/xvda1       20G   17G  2.3G  88% /

tmpfs           1.9G     0  1.9G   0% /dev/shm

/dev/xvdb1       99G  5.7G   88G   7% /mnt

 

2、du的结果如下

# du -smh /* 2>/dev/null

7.6M  /bin

24M  /boot

164K  /dev

27M  /etc

4.0K  /home

148M  /lib

22M  /lib64

16K  /lost+found

4.0K  /media

5.5G  /mnt

8.0K  /opt

0  /proc

374M  /root

15M  /sbin

4.0K  /selinux

4.0K  /srv

1001M  /swap

0  /sys

44K  /tmp

3.2G  /usr

525M  /var

初步对比df检查的系统盘占用大小大于du的执行结果,磁盘去哪里了?

 

二、原因的排查,这里用的是一个工具lsof 

1、lsof的介绍和使用

linux 大量使用了文件。作为系统管理员,lsof 允许您对核心内存进行查看,以找出系统当前如何使用这些文件。lsof 最简单的用法可以告诉您哪些进程打开了哪些文件,以及哪些文件由哪些进程打开。在收集关于应用程序工作情况的信息时,或在进行某些可能损坏数据的操作前确保文件未被使用时,这一点特别重要,lsof 更高级的用法可以帮助您查找删除的文件。

# lsof |grep delete

nginx      1051 nobody    4u      REG              202,1     5324800     394886 /usr/local/nginx/proxy_temp/3/77/0005756773 (deleted)

nginx      1051 nobody   24u      REG              202,1      131072     394885 /usr/local/nginx/proxy_temp/2/80/0005756802 (deleted)

AliYunDun 22327   root   12uW     REG              202,1           0     394241 /tmp/qtsingleapp-aegiss-a5d2-lockfile (deleted)

java      22635   root    1w      REG              202,1 11867008131     655390 /usr/local/tomcat/logs/catalina.out (deleted)

java      22635   root    2w      REG              202,1 11867008131     655390 /usr/local/tomcat/logs/catalina.out (deleted)

java      22635   root  129r      REG              202,1    13774099     658029 /usr/local/tomcat/webapps/ROOT/WEB-INF/lib/elasticsearch-1.5.2.jar (deleted)

java      22635   root  147r      REG              202,1      543706     658104 /usr/local/tomcat/webapps/ROOT/WEB-INF/lib/struts.jar (deleted)

java      22635   root  199r      REG              202,1      447676     658074 /usr/local/tomcat/webapps/ROOT/WEB-INF/lib/mail-1.4.1.jar (deleted)

最后重启服务器或者程序都可以,建议重启服务器,磁盘空间便可出来


 

(责任编辑:IT)