• root目录占用大量空间


    今天看了一下测试服务器,突然发现根目录已使用100%了,赶紧检查了一下。

     

     查看了隐藏文件,找到了。

    进入.vnc目录是一个日志文件占用了空间,将其删除,另外将/home中的一个安装文件也删除了。奇怪的是空间却没有释放,

    以前看到过用文件句柄恢复误删的oracle数据文件的案例, 还是要理解Linux下文件系统的原理。文件系统中分为两个部分:数据和指针,指针位于文件系统的meta-data中,数据被删除后,这个指针就从meta-data中清除了,而数据部分存储在磁盘中,数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,如果进程仍然一直在读写这个文件,就可能由于进程锁定导致指针未从metadata中清除,系统就认为此文件未被删除。

    接下来执行  lsof | grep deleted 有进程在使用刚才删除的文件

    现在有两种方式处理,1、kill 进程释放文件句柄;2、将/root/.vnc/racdb1:1.log 拷贝回去,然后将其清空 echo ‘’>/root/.vnc/racdb1:1.log。

    最开始处理的太简单,不应该删除,发现是VNC的日志文件就应该用清空的方式处理的,在实际的这种方式可保障进程继续向文件写入日志,不会对应用产生影响。

    现在用第二种方式处理

     

     

     空间还是没有释放。将当前文件句柄清空,应该会释放空间。

    lsof
    command PID USER FD type DEVICE SIZE NODE NAME

    lsof输出各列信息的意义如下:

    COMMAND:进程的名称
    PID:进程标识符
    PPID:父进程标识符(需要指定-R参数)
    USER:进程所有者
    PGID:进程所属组
    FD:文件描述符,应用程序通过文件描述符识别该文件。

  • 相关阅读:
    抓老鼠啊~亏了还是赚了?
    币值转换
    打印沙漏
    秋季学习总结
    对我影响最大的三位老师
    自我介绍
    第三周作业
    第二周作业
    求最大值及其下标
    PTA编程总结3
  • 原文地址:https://www.cnblogs.com/historynote/p/12992190.html
Copyright © 2020-2023  润新知