由du,df 得出不同结果反应出的问题

最近遇到了因为某种异常情况导致某目录下日志暴增,在修复异常情况后,发现pm2 不能启动,查看日志发现原因为空间不足。

使用du -sh查看确实为空间不足。在rm -rf 删除之后,仍然不能启动。这时用df -h发现该目录所在分区磁盘使用率已近100%。

出现该情况的原因是:

du与df计算空间大小的方法不同:

du: 是通过对所有文件逐个获取文件大小的,最后累加(所以在文件数量很大时,会很慢)

df: 是通过读取磁盘快信息(会很快)。

当rm -rf删掉文件后,du就找不到这些文件,也就不会进行大小计算了。而被进程引用的文件所占用的磁盘块信息仍然存在。所以出现了这种差异。

可以通过lsof |grep (deleted)|awk ‘{print $2}‘|sort -u|xargs kill 杀掉进程,释放资源。

时间: 2024-12-26 09:05:43

由du,df 得出不同结果反应出的问题的相关文章

du df Linux命令详解

du和df的区别: du 统计文件大小相加,df  统计数据块使用情况,如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放.直到这个打开大文件的进程被Kill掉.我们碰到的问 题是,我们在定期删除 /var/spool/clientmqueue下面的文件,但是没有杀掉其进程,所以空间一直没有释放.使用下 面的命令杀掉进程之后,系统恢复. df命令详细用法 a:显示全部的档案系统和各分割区的磁盘使用情形 i:显示

linux-磁盘,扇面,柱面,文件系统,硬链接,符号链接,du,df

磁盘.扇面.柱面 http://blog.chinaunix.net/uid-13245160-id-84370.html http://blog.chinaunix.net/uid-17246314-id-5676479.html 低级格式化:低级格式化就是将磁盘内容重新清空,恢复出厂时的状态,划分出的柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识部分ID.间隔区GAP和数据区DATA等. 分区:文件系统 MBR:bootloader(446字节).分区表(64字节,4个分区).结

linux命令:du,df用法说明

   du命令简介: 计算每个文件的磁盘用量,目录则取总用量. 1.命令格式: 用法:du [选项]... [文件]... 或:du [选项]... --files0-from=F 2.命令功能: 计算每个文件的磁盘用量,目录则取总用量. 3.命令参数: -a, --all输出所有文件的磁盘用量,不仅仅是目录 --apparent-size显示表面用量,而并非是磁盘用量:虽然表面用量通常会 小一些,但有时它会因为稀疏文件间的"洞".内部碎片.非直接引用的块等原因而变大. -B, --b

2016年4月19日useradd/du/df/passwd/usermod命令

一.useradd命令 useradd命令-M -u -s -g 常用 -c:加上备注文字,备注文字保存在passwd的备注栏中.  -d:指定用户登入时的启始目录. -D:变更预设值.(修改默认配置文件) -e:指定账号的有效期限,缺省表示永久有效. -f:指定在密码过期后多少天即关闭该账号. -g:指定用户所属的起始群组. -G:指定用户所属的附加群组. -m:自动建立用户的登入目录. -M:不要自动建立用户的登入目录. -n:取消建立以用户名称为名的群组. -r:建立系统账号. -s:指定

部分转载--linux命令 du df free区别

1,两者区别 du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的.他计算的大小就是当前他认为存在的所有文件大小的累加和. df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小

Linux 查看文件夹大小,磁盘剩余空间(du/df)

1. 简介 du查看目录大小,df查看磁盘使用情况. 2. du disk usage (1)基本功能 递归查看文件夹下所有文件的大小 (2)常用参数: -h, –human-readable 以可读性较好的方式显示尺寸(例如:1K 234M 2G) -s, –summarize 只分别计算命令列中每个参数所占的总用量 (3)其它参数说明: -a, –all 输出所有文件的磁盘用量,不仅仅是目录 –apparent-size 显示表面用量,而并非是磁盘用量:虽然表面用量通常会小一些,但有时它会因

Linux学习总结(七)-磁盘管理 du df fdisk

我想了好久不知道怎么开头, 那就直接点, 这次主要讲三个命令, df du fdisk 一 命令df df,即disk free,可用来查看当前系统的挂载情况,也可以用来查看整体磁盘的使用情况df 不带参数,默认以KB单位显示df -i -----查看inodes 使用情况,要清楚理解inodes 建议看下以下链接文章 http://www.ruanyifeng.com/blog/2011/12/inode.html例如 df -i |grep -v tmp备注:这里使用了管道 过滤,-v 是取

【转】Linux命令之查看文件占用空间大小-du,df

原文网址:http://blog.csdn.net/wangjunjun2008/article/details/19840671 du(disk usage),顾名思义,查看目录/文件占用空间大小 #查看当前目录下的所有目录以及子目录的大小$ du -h $ du -ah #-h:用K.M.G的人性化形式显示 #-a:显示目录和文件   du -h tmp du -ah tmp#只查看当前目录下的tmp目录(包含子目录)的大小 #查看当前目录及其指定深度目录的大小du -h –-max-dep

du df区别

du -sh 命令通过将指定文件系统中所有的目录.符号链接和文件使用的块数累加得到该文件系统使用的总块数:    df -Th 命令通过查看文件系统磁盘块分配图得出总块数与剩余块数.文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等.这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data.du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data. 因此正常情况下,df计算的USED空