问题:

服务器磁盘占用100%而导致服务异常

解决:

先用命令检查磁盘 df -h

[root@localhost /]# df -h
文件系统                容量  已用  可用 已用% 挂载点
/dev/mapper/klas-root   100G   100G   0G   100% /

发现根目录 /占用确实100%  

       然后利用命令du -sh * 和 find /etc -type f -size +800M  -print0 | xargs -0 du -h 排查。都没有找到能有效解决磁盘占用大文件。

  那这个文件有没有可能被删除了呢?

  命令 lsof -n | grep deleted列出当前系统打开文件(被删除)

[root@localhost fd]# lsof -n | grep deleted
Xvnc 1356213 1356215 llvmpipe- root 1w REG 252.0 94609219584 252169258 /root/.vnc/localhost.localdomain:1.log(deleted)

  这个文件有90多G那么大!!!
  判断频繁用vnc导致日志文件过大问题,命令查看 ls -lh /root/.vnc/localhost.localdomain:1.log,却提示文件不存在

[root@localhost fd]# tail /root/.vnc/localhost.localdomain:1.log
tail: 无法打开'/root/.vnc/localhost.localdomain:1.log' 读取数据: 没有那个文件或目录

虚拟文件系统对应进程目录 看看文件tail /proc/1356213/fd/1(这个文件的指向就是/root/.vnc/localhost.localdomain:1.log

[root@localhost fd]# tail /proc/1356213/fd/1

SQL> SQL> 无法获取一行数据,忽略此输入无法获取一行数据,忽略此输入

SQL> SQL> 无法获取一行数据,忽略此输入无法获取一行数据,忽略此输入

SQL> SQL> 无法获取一行数据,忽略此输入无法获取一行数据,忽略此输入

SQL> SQL> 无法获取一行数据,忽略此输入无法获取一行数据,忽略此输入

SQL> SQ[root@localhost fd]# ls

竟然有输出,果然看似文件是被删了,事实上还一直占用着系统资源

这个时候只需要清空文件> /proc/1356213/fd/1就行。

最后检查磁盘空间 ,成功释放

[root@localhost /]# df -h
文件系统                容量  已用  可用 已用% 挂载点
/dev/mapper/klas-root   100G   12G   89G   12% /