`
bnmnba
  • 浏览: 296151 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

du查看的目录大小与df查看的大小不同的时候用lsof查找 (转)

 
阅读更多

首先MAN一下俩个命令,看一下解释的区别:

du - estimate file space usage

df - report file system disk space usage

du估计文件空间占用情况,df报告文件系统磁盘空间使用情况。两个命令所要获取的对象时不同的。在linux下,几乎所有东西都可以称为文件,常规文件,二进制文件,socket流。所以,通常情况下,使用du得到到的根路径文件空间占用情况应当与df得到的文件系统磁盘占用的情况是一直的或者说相差无几。但是在某些情况下却会出现du得到的空间占用情况要远小于df得到的。

后通过查询,发现问题出现在deleted文件上。

root下lsof | grep deleted会发现多多少少有些文件状态出于deleted状态。

[root@eb152 ~]# lsof |grep deleted

进程名   PID       USER    FD   文件类型        大小(字节)  索引节点  文件名  [(状态)]

java       3311    AuSP    8w      REG              253,0         778   10879268 ***.log (deleted)

java       3311    AuSP    9w      REG              253,0        3275   10879269 ***.log (deleted)

java       3311    AuSP   10w      REG              253,0           0   10879815 ***.log (deleted)

java       3311    AuSP   11w      REG              253,0           0   10879816 ***.log (deleted)

oracle     4195  oracle    7u      REG              253,0           0   14254321 *** (deleted)

状态为deleted为标记被删除,其实该文件并没有从磁盘中删除,类似windows下的回收站状态。

据称当有其他进程打开某文件时文件被删除,就会将该文件标记为deleted,并删除其目录节点。使用du查看时,因为没有该删除状态文件的节点信息,所以就不做统计,从而导致与df的结果不一致。

若要将deleted状态文件删除,则根据pid直接kill调相应进程即可。

找回被删除文件:

根据以上分析,若删除的文件仍有进程进行操作是有找回数据的可能的。

quote:

若删除的文件为系统日志中的secure文件,则可以根据以下方法找回:

# lsof |grep /var/log/secure

 

syslogd 2574 root 2w REG 253,0 1099 525125 /var/log/secure (deleted)

可以看到进程号为2574的syslogd进程仍然打开了/var/log/secure这个文件,这个文件所显示状态是deleted,已经被删除。现在FD文件描述符是2w。它的意思是文件描述符是2,状态是w写。

我们可以根据这个在/proc/2574/fd/2找到被删除的/var/log/secure的内容。

当文件被误删时,切忌reboot操作。

 

http://my.oschina.net/zphj1987/blog/77878

http://www.linuxfly.org/post/575/

 

分享到:
评论

相关推荐

    Linux磁盘空间被未知资源耗尽的解决方法

    这种情况下,通过df和du命令查找的磁盘空间,两者是无法匹配的,可能df显示磁盘100%,而du查找目录的磁盘容量占用却很小。 遇到这种情况,基本可以断定是某些大文件被某些程序占用了,并且这些大文件已经被删除了,...

    如何恢复 Linux 被吃掉的磁盘空间.docx

    有时候,`du`和`find`的结果总和与`df`显示的磁盘使用量不符。这可能是因为被删除的文件尚未释放空间。例如,一个大日志文件被删除,但空间未释放。这时,可以利用`lsof`命令检查被删除但仍然占用空间的文件,如`...

    Linux服务器维护相关常用命令总结linux操作系统电脑资料.doc

    * 查看磁盘分区使用情况:`fdisk -l`、`df -hl` * 修改 /etc/aliases 后更新 /etc/aliases.db 数据库:`newaliases` 这些命令可以帮助 Linux 服务器管理员快速解决常见的问题,提高工作效率和服务器维护的质量。

    ubuntu命令大全.pdf

    * 查看目录占用空间:使用 `du -hs` 查看目录占用空间。 * 查看当前的内存使用情况:使用 `free` 查看当前的内存使用情况。 * 查看当前的进程执行情况:使用 `top` 查看当前的进程执行情况。 这些命令和工具将帮助...

    Aix命令行中文解释

    `df`显示磁盘总容量和已用空间,`du`计算目录或文件占用的空间。 20. `tar`:打包和解包文件。常用作数据备份,可以创建和提取.tar文件。 21. `make`:自动化构建工具。用于编译程序和执行依赖关系检查。 22. `...

    AIX命令大全.zip

    15. **du**:估计文件和目录所占的磁盘空间。有助于识别占用空间大的文件和目录。 16. **ifconfig**:配置网络接口。用于查看和设置网络接口的IP地址、子网掩码等。 17. **route**:查看和管理路由表。用于查看系统...

    Linux服务器命令.doc

    26. **查看目录下的文件大小日期等**: - `du -sh *`显示当前目录下所有文件和子目录的大小。 27. **查看环境变量**: - `echo $VARIABLE`查看特定变量,`printenv`或`env`列出所有环境变量。 28. **进入到用户...

    Ubuntu Linux 常用指令

    6. **磁盘空间**:`df -h` 或 `df -H` 查看磁盘空间使用情况,`du -hs 目录名` 查看目录大小。`sync` 和 `fuser -km /media/usbdisk` 用于安全卸载优盘。 7. **内存与进程管理**:`free -m` 查看内存使用情况,`ps ...

    aix 命令大全

    `df`显示磁盘总容量、已用空间和可用空间,而`du`报告文件和目录占用的磁盘空间。 13. `ps`和`top`:查看系统进程状态。`ps`显示当前的进程状态,`top`提供动态视图,包括CPU和内存使用情况。 14. `netstat`:网络...

    Linux常用命令总结

    - 查看当前目录文件大小:`du -sh *` - 排序文件大小:`du -sh * | sort -h` 5. **文件搜索与解压缩**: - 搜索文件:`find / -name '文件名'` - 解压缩文件:`tar -zxvf 压缩文件名` 或 `unzip demo.zip` - ...

    ubuntu的命令

    使用`du -sh <directory>`可以查看特定目录的大小。 **3.11 优盘无法卸载** 若优盘无法正常卸载,可以尝试使用`fuser -u /mnt/usb`(假设优盘挂载点是/mnt/usb)来解除占用。 **3.12 使用文件增加交换空间** 通过`...

    ibm公司的aix操作系统命令

    17. **df(磁盘空间)**:`df`命令显示磁盘的使用情况,而`du`则用来查看目录或文件的大小。 18. **top(实时监控系统状态)**:`top`命令提供了一个动态视图,显示系统资源的实时使用情况,包括CPU、内存和各个...

    linux 常用实用命令.docx

    - `du -sh *`: `du` 命令用于计算文件和目录的大小,`-s` 参数用于汇总目录的总大小,`-h` 使结果以人类可读的单位显示,`*` 表示当前目录下的所有文件和目录。 3. **查看CPU和内存状态**: - `top`: 实时显示...

    实用linux命令集sss[借鉴].pdf

    * 查看目录占用空间:du -hs 目录名 进程管理 * 查看当前有哪些进程:ps -A * 查看当前进程树:pstree * 中止一个进程:kill 进程号或 killall 进程名 * 强制中止一个进程:kill -9 进程号或 killall -9 进程名 * ...

    ubuntu skills ubuntu命令技巧(pdf格式)

    了解某个目录占用的空间大小,可以使用`du -sh <directory>`命令。 ##### 3.11 优盘无法卸载 如果优盘无法正常卸载,可以尝试使用`fuser -u /media/<username>/<device>`命令。 ##### 3.12 使用文件增加交换空间 ...

    Ubuntu命令技巧

    - `du -sh *`:查看目录占用空间。 - `umount -f`:强制卸载优盘。 - `swapon`:使用文件增加交换空间。 - `iostat`:查看硬盘读写情况。 **4. 进程管理** - `free -m`:查看内存使用情况。 - `top`:实时监控内存...

    linux.txt

    根据提供的文件信息,我们可以推断出该文档与Linux操作系统有关,并且主要关注的是网络服务、文件系统以及命令行工具的使用。尽管“部分内容”中包含了一些乱码字符,但还是可以从中提取出一些有用的Linux命令来进行...

    Ubuntu命令技巧.pdf

    **3.10 查看目录占用空间** - 使用 `du -sh <directory>` 命令查看指定目录占用的空间。 **3.11 优盘无法卸载** - 使用 `fuser -u /dev/sdb1` 查找占用的进程,然后使用 `umount /dev/sdb1` 卸载。 **3.12 使用...

    Ubuntu常用命令 (超详细小熊整理版)

    - **列出目录下的文件:** `ls`命令用来列出指定目录下的文件和子目录列表,默认情况下只列出当前目录下的文件和目录。 - `ls [选项] [目录名]` - `-a` 显示所有文件及目录 (包括以 . 开头的隐藏文件)。 - `-l` ...

Global site tag (gtag.js) - Google Analytics