`

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删除文件的策略并不像Windows那样有回收站,而是直接移除文件的元数据中的指针,但文件数据部分仍然保留在磁盘上,直到被其他数据覆盖。这通常不会成为问题,除非文件在删除后仍被进程持有,比如在本例中,...

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

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

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

    但是,在某些情况下,文件删除后,空间仍然没有释放,这是因为文件被进程锁定,或者有进程一直在向这个文件写数据等。这种情况下,虽然删除了文件,但是由于进程锁定,文件对应的指针部分并未从 meta-data 中清除,...

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

    5. **使用`sync`命令**:在删除文件后,执行`sync`命令可以确保文件系统的更新立即写入磁盘,这可能会帮助释放空间,尤其是在文件系统缓存了未写入的数据时。 6. **检查`/proc/<pid>/fd/`目录**:进程的文件描述符...

    Linux下位图文件系统的设计与实现.pdf

    【Linux 下位图文件系统的设计与实现】 在 Linux 操作系统中,文件系统扮演着至关重要的角色,它负责管理和组织存储设备上的数据。随着 Linux 的不断发展和完善,用户可以通过虚拟文件系统(VFS)来实现自定义的...

    重复文件删除工具Linux32位

    5. 删除重复文件:用户确认后,工具会安全地删除选定的重复文件,释放磁盘空间。 在Linux环境中,使用"Duplicate-File-Eraser"这样的工具通常涉及以下步骤: 1. 安装工具:根据发行版的不同,可能需要通过包管理器...

    LINUX按时间批量删除文件(删除N天前文件)

    在Linux系统中,经常需要清理一些不再需要的老文件来释放磁盘空间或者维护系统的整洁。本文将详细介绍如何利用`find`命令结合其他工具来批量删除指定目录下N天之前的文件。 #### 一、`find`命令简介 `find`是Linux...

    释放Linux系统磁盘空间.pdf

    在Linux系统中,释放磁盘空间可以通过删除不必要的文件和日志文件来实现。例如,可以删除/var/log/messages文件来释放磁盘空间。 此外,还可以使用du命令来查找占用磁盘空间最大的文件和目录,然后删除它们以释放...

    Linux 按时间批量删除文件命令(删除N天前文件)

    在日常运维工作中,经常需要清理服务器上的旧文件来释放磁盘空间或管理文件版本。特别是在Linux环境下,掌握如何高效地按时间批量删除文件是一项非常实用且必要的技能。本文将详细介绍如何利用`find`命令配合其他...

    Linux操作系统硬盘空间管理的策略与实践.pdf

    Linux操作系统硬盘空间...释放硬盘空间可以通过删除垃圾文件、压缩文件和目录、设置文件系统的quota等方法来实现。 Linux操作系统的硬盘空间管理需要管理员掌握相关的策略和实践方法,以确保系统的正常运行和稳定性。

    重复文件删除工具Linux64位

    本文将详细介绍“重复文件删除工具Duplicate-File-Eraser”在Linux 64位环境下的应用,以及如何利用MD5校验和来识别和删除重复文件。 1. **重复文件的定义**:在计算机系统中,重复文件是指内容完全相同但文件名...

    如何恢复 Linux 被吃掉的磁盘空间.docx

    这可能是因为被删除的文件尚未释放空间。例如,一个大日志文件被删除,但空间未释放。这时,可以利用`lsof`命令检查被删除但仍然占用空间的文件,如`lsof +L1`,然后根据需要重启相关服务以释放空间。 除此之外,...

    Linux系统中的垃圾文件清理.pdf

    使用这些命令和工具软件,用户可以轻松地清除Linux系统中的垃圾文件,释放磁盘空间,提高系统性能。 清除垃圾文件是Linux系统维护中的一个重要步骤,通过使用命令和工具软件,用户可以轻松地清除垃圾文件,提高系统...

    Linux系统磁盘空间满了排查大文件的方法.docx

    本文将详细讲解如何使用Linux命令排查并处理大文件,以便释放磁盘空间。 首先,当发现Linux系统磁盘空间不足时,我们需要以root用户权限登录,因为清理或修改系统文件通常需要管理员权限。你可以使用`su`或`sudo su...

    Linux 下垃圾清理工具 BleachBit.docx

    在 Linux 系统中,BleachBit 是一个非常有用的垃圾清理工具,能够帮助用户快速删除垃圾文件,释放磁盘空间和保护隐私。该工具的使用非常简单,只需要安装和运行 BleachBit,然后选择要删除的内容,点击删除按钮,...

    模拟Linux文件系统

    在本项目中,"模拟Linux文件系统"是一个学习任务,旨在通过C++编程语言来实现一个简化版的文件系统,让学生能够理解Linux操作系统中的文件系统工作原理。这个项目可能包括了文件的创建、读写、删除等基本操作,以及...

    linux数据存储与超量删除

    当磁盘空间不足时,我们需要删除旧数据来释放空间。Linux提供了一些命令可以帮助检查磁盘空间,如`df`和`du`。`df`用于显示所有文件系统的总容量、已用空间、可用空间和使用率,而`du`则可以查看指定目录或文件所...

    linux自动备份文件 并上传到远程服务器 脚本实现

    3. **删除旧备份:** 清理超过一定时间(如7天)的旧备份文件,释放空间。 4. **FTP上传:** 将新产生的备份文件通过FTP上传至远程服务器。 5. **定时任务设置:** 配置Cron定时任务,确保备份工作能够按时执行。 #...

    模拟linux文件系统

    1. 文件和目录的创建与管理:模拟文件系统需要实现文件的创建、打开、关闭、读写等操作,同时要处理目录的创建、删除和遍历。这通常通过实现文件操作接口(如open、read、write、close等)来完成。 2. 权限和访问...

Global site tag (gtag.js) - Google Analytics