zoukankan      html  css  js  c++  java
  • Linux删除文件后空间不释放

    最近线上 elasticsearch 由于磁盘空间不足报错,于是乎对磁盘进行了分析,删除了一些 Tomcat 日志文件,但是删除后发现并没有磁盘空间释放。于是 google 了一下。

    原来在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink),然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。而我删除的是正在运行中的 Tomcat 的 logs,删除的时候文件正在被使用中。

    Linux 使用 lsof | grep deleted 命令获得一个已经被删除但是仍然被应用程序占用的文件列表,kill 掉相关进程即可强制要求系统回收分配给正在使用的的文件。或者也可以将文件占用取消,比如当前场景可以让 Tomcat 关闭即可取消文件占用。
    lsof 全名 list opened files,也就是列举系统中已经被打开的文件。)

    在网上还看到了一种方法,使用 echo " " > logs/xxx.log 通过这种方法,磁盘空间不但可以马上释放,也可保障进程继续向文件写入日志,这种方法用于在线清理 ApacheTomcatNginxWeb 服务产生的日志文件相当实用。

    本文由个人 hexo 博客 co2fe.com 迁移
    date: 2018-11-21 16:53:29

  • 相关阅读:
    vim编辑中断后,重新编辑的警告删除
    更新centos7的kernel
    centos7 设置连接无线wifi
    U盘安装centos7
    centos7清理矿机木马qw3xT,kpgrbcc
    centos7 防火墙屏蔽IP
    ftp用户和密码
    聚类结果的评估指标及其JAVA实现
    java.io.Serializable浅析
    JAVA中求解对象所占字节大小
  • 原文地址:https://www.cnblogs.com/manastudent/p/10191069.html
Copyright © 2011-2022 走看看