`

linux下删除文件后没有释放空间(转)

 
阅读更多
问题

文件被删除后,空间没有被释放


原因

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


解决方法

首先我们获得一个已经被删除但是仍然被应用程序占用的文件列表:

[bash]$ /usr/sbin/lsof|grep deleted
ora 25575 data 33u REG 65,65 4294983680 31014933 /oradata/DATAPRE/UNDOTBS009.dbf (deleted)[/bash]

从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为 33打开的文件/oradata/DATAPRE/UNDOTBS009.dbf。

在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空间。

通过截断proc文件系统中的文件可以强制要求系统回收分配给正在使用的的文件。这是一项高级技术,仅到管理员确定不会对运行中的进程造成影响时使用。应用程序对这种方式支持的并不好,当一个正在使用的文件被截断可能会引发不可预知的问题

[bash]$ echo > /proc/pid/fd/fd_number[/bash]

例如,根据之前lsof的输出:

[bash]$ file /proc/25575/fd/33
/proc/25575/fd/33: broken symbolic link to `/oradata/DATAPRE/UNDOTBS009.dbf (deleted)’
$ echo > /proc/25575/fd/33[/bash]

分享到:
评论

相关推荐

    Linux如何处理文件已删除但空间不释放的问题

    主要介绍了Linux如何处理文件已删除但空间不释放的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    如何解决Linux中文件已删除但空间不释放.doc

    一般来说不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件被进程锁定,或者有进程一直在向这个文件写数据等,要理解这个问题,就需要知道Linux下文件的存储机制和存储结构。

    Linux服务器文件删除空间未释放的问题

     在Linux系统中,通过rm删除文件将会从文件系统的目录结构上解除链接(unlink),如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件磁盘空间也一直被占用  这样会导致我们明明删除了文件,...

    Linux文件删除后空间未释放问题详解

    其实不然,linux的回收站功能想了解的可以与我沟通或查资料了解一下,也是个比较实用的方法,此处我们主要实践文件删除后空间未释放问题。 1、 实验准备 想模拟该场景的方式很多,主要是实现文件被占用的场景。最...

    Linux磁盘空间被未知资源耗尽的解决方法

    在linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行。...

    操作系统课设基于Linux的磁盘存储空间管理

    (2)具有创建文件、空间分配、删除文件、释放空间等基本功能; (3)把个文件目录、磁盘空间管理的数据结构变化情况显示出来。 三个功能应该都有,我负责的是空白文件目录结构管理磁盘空间,采用的是队列的方式

    Linux下如何寻找相同文件的方法

    所以如果你的电脑空间告急的话,可以试着去删除这样的文件,释放一些空间。在 Linux 下,我们可以通过识别文件的 inode 值来找出系统中的相同文件。 inode 是一个数据结构,记录了文件所有信息,除了文件名和文件...

    linux中,用shell脚本检查磁盘使用率并清理文件

    (2)另一种情况是该文件以长时间没有写操作,没有其他进程以写的方式在打开它,可以直接删除,以rm的方式清理。 4、上述两种情况分别以两个shell函数实现,有入参,可任意调节入参。 5、这两个函数的第一个参数是...

    Linux管理员指南

    ln命令 78 6.4.4 查找文件命令find 78 6.4.5 转换并拷贝文件命令dd 79 6.4.6 文件压缩命令gzip 80 6.4.7 建立子目录命令mkdir 81 6.4.8 删除子目录命令rmdir 81 6.4.9 显示当前工作子目录命令pwd ...

    如何在Linux上找出并删除重复的文件:FSlint

     无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能够帮你扫描系统中的重复文件并删除它们来释放空间。图形界面和命令行界面的都有。重复文件是磁盘空间不必要的浪费。毕竟,如果你的确需要在不同的位置...

    BleachBit:删除垃圾文件以释放磁盘空间并提高隐私性-开源

    BleachBit释放磁盘空间并维护隐私。 清除缓存,Internet历史记录,临时文件,日志,cookie,Firefox,Google Chrome,Flash,Windows,Linux等。 下载地址为www.bleachbit.org,源代码为GitHub。

    Linux中出现“No space left on device”错误的排查与解决方法

    正常情况下,删除一些文件来释放空间,即可解决该问题。 当我使用 df 命令查看分区情况时,结果如下: # df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 29G 29G 0 100% / udev 10M 0 10M 0% /dev ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    -n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。 4.应用技巧 在Linux 和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分...

    疯狂内核之——Linux虚拟内存

    3.6 创建和删除进程的地址空间 156 3.6.1 创建进程的地址空间 156 3.6.2 删除进程的地址空间 175 3.6.3 内核线程1号的地址空间 176 3.7 堆的管理 178 第四章 磁盘文件内存映射 182 4.1 内存映射的数据结构 182 4.2 ...

    liunx下日志备份及清理脚本

    内容概要: ...2、备份日志后原日志文件不删除只清空当前当前日志内容,释放空间并把备份日志进行压缩存储。 备份日志清理采用以下两种方式: 1、采用find命令方式进行清理。 2、普通命令方式进行清理。

    银行家算法目六、linux模块加载或内核编译

    ①释放用户空间,进行资料收集。 ②更改文件和目录属性,关闭使用权限,对发生改变和新生成文档要进行打包压缩;移动包到U盘,卸载U盘,删除在用户目录下创建工作目录。 项目六、linux模块加载或内核编译 设计要求:

    BleachBit:删除垃圾文件以释放磁盘空间并提高隐私-开源

    BleachBit 释放磁盘空间并维护隐私。 清理缓存、互联网历史记录、临时文件、日志、cookie、Firefox、谷歌浏览器、Flash、Windows、Linux 等。 下载位于 www.bleachbit.org,源代码位于 GitHub。

Global site tag (gtag.js) - Google Analytics