新公司的测试机磁盘空间空余很小,日志不少,也很大,作个日志压缩脚本,在夜里4:30自动运行,次日后发现磁盘空间又满了,只好删除没用的日志,清空空间,可诡异的是怎么删除没用的文件,空间仍是占用很大。如图node
用du 根目录下,发现这些文件加一块也达不到占用的空间大小。如图linux
我也有碰见过此类问题,通常都是重启完事,由于磁盘坏道损坏有可能致使此问题。segmentfault
或 DF -i 查看inode使用率,inode不够用也会致使此问题。可看了inode也够用。windows
如图测试
此次我度娘了一下,”磁盘空间没释放“,按一篇文章干,解决了此问题。.net
记录以下:日志
昨天协助同事搞定了一块儿磁盘空间被”无形”占用的疑难杂症,简要记录以备忘.blog
一、用df 检查发现/根目录可用空间为0进程
[root@/]#df -hget
二、用du检查发现各目录占用的空间都不多,有约3G的空间莫名其妙地丢了.
[root@/]# du -m –max-depth=1 |sort -gr
三、用lsof检查后才发现缘由是,有文件被删除,而进程还活着,于是形成还占用空间的现象
[root@/]# lsof |grep delete
根据lsof列出的进程号,kill这些进程后,空间就释放出来了.
本文出自 “想飞却飞不高的猪” 博客,请务必保留此出处http://2483526.blog.51cto.com/2473526/798379
linux里的文件被删除后,空间没有被释放是由于在Linux系统中,经过rm或者文件管理器删除文件将会从文件系统的目录结构上解除连接(unlink).然而若是文件是被打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用。
态为deleted为标记被删除,其实该文件并无从磁盘中删除,相似windows下的回收站状态。
据称当有其余进程打开某文件时文件被删除,就会将该文件标记为deleted,并删除其目录节点。使用du查看时,由于没有该删除状态文件的节点信息,因此就不作统计,从而致使与df的结果不一致。
若要将deleted状态文件删除,则根据pid直接kill调相应进程便可。
找回被删除文件:
使用lsof处理文件恢复、句柄以及空间释放问题 - yexiaoxiaobai - SegmentFault https://segmentfault.com/a/1190000000461077