问题现象
在操作系统中,当我们使用 rm 在操作系统上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么操作系统内核还是不会 释放这个文件的磁盘空间,最后造成磁盘空间占用 100%,整个系统无法正常运 行。这种情况下,通过 df 和 du 命令查找的磁盘空间,可能 df 显示磁盘 100%, 而 du 查找目录的磁盘容量占用却很小。
问题原因
遇到这种情况,基本可以断定是某些大文件被某些程序占用了,并且这些大文件已经被删除了,但是对应的文件句柄没有被某些程序关闭,造成内核无法收回这些文件占用的空间。
解决方案
如何查找那些文件被某些程序占用
#
lsof -n |grep deleted
命令:
#
lsof -n| grep deleted
打印出所有针对已删除文件的读写操作,这类操作是无效的,也正是磁盘空间莫名消失的根本原因。
使用:
#
kill -9 PID
只需把进程删掉就能释放空间
操作命令详解
#
lsof which httpd
//那个进程在使用 apache 的可执行文件 #
lsof /etc/passwd
//那个进程在占用/etc/passwd #
lsof /dev/hda6
//那个进程在占用 hda6 lsof /dev/cdrom //那个进程在占用光驱 #
lsof -c sendmail
//查看 sendmail 进程文件使用情况 #
lsof -c courier -u uos
//显示出那些文件被以 courier 打头的进程打开,但 是并不属于用户 uos #
lsof -p 30297
//显示那些文件被 pid 为 30297 的进程打开 #
lsof -D /tmp
//显示所有在/tmp 文件夹中打开的 instance 和文件的进程,但 是 symbol 文件并不在列 #
lsof -u1000
//在 uid 是 1000 的用户的进程的文件使用情况 #
lsof -uuos
//查看用户 uos 的进程的文件使用情况 #
lsof -i
//显示所有打开的端口 #
lsof -i:80
//显示所有打开 80 端口的进程 ©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。