工作中遇到一些问题,Linux 服务器磁盘占用 100% 但是找不到大的文件。
在解决的过程中需要用到 lsof 命令,该命令可以用 yum 安装,或者去这里(https://pkgs.org/download/lsof)下载 rpm 包。
一、查看进程锁定的文件,lsof | grep deleted ,输出的信息第二列是 PID ,倒数第二列是该文件被系统承认的大小标识。
二、根据查出的 PID 进到相应的目录, cd /proc/<PID>/fp , ll 查看进程使用的文件用什么数字表示。
三、清空文件,加入上图中的 4 链接的文件是需要清空的,则使用 echo " " > 4 , 进行清空。
以上操作结束后,使用 df -h 查看文件系统使用率会有所下降。
在/proc文件系统中,每一个进程都有一个相应的文件 。下面是/proc目录下的一些重要文件 ,供参考:
/proc/pid/cmdline 包含了用于开始进程的命令 ;
/proc/pid/cwd 包含了当前进程工作目录的一个链接 ;
/proc/pid/environ 包含了可用进程环境变量的列表 ;
/proc/pid/exe 包含了正在进程中运行的程序链接;
/proc/pid/fd/ 这个目录包含了进程打开的每一个文件的链接;
/proc/pid/mem 包含了进程在内存中的内容;
/proc/pid/stat包 含了进程的状态信息;
/proc/pid/statm 包含了进程的内存使用信息。
在此奉劝各位,磁盘满了,查到大文件占用后,别直接删了,先看有没有进程在占用这个文件,查看方式: lsof filename
lsof 命令的更详细的使用方式查看链接:https://www.cnblogs.com/chenjinxi/p/8268324.html