1.文件自动清理的需求

   1.1 过期文件

        任何数据都有自己的声明周期,数据在产生和产生之后的一段时间内的价值最大,然后数据价值随着时间衰减。在数据生命周期结束时,就应该删除这些过期文件,将存储空间释放留给有价值的数据。

   1.2 垃圾文件

        系统运行过程中会产生各种各样的临时文件,为应用程序运行时的临时文件,系统错误产生的 Trace 文件,Core Dump 等等,在这些文件被处理后,就失去了保留价值,这些文件被称为垃圾文件。及时清理垃圾文件,有助于系统维护和管理,保证系统稳定有效的运行。

2.文件自动清理的概述

   2.1 文件自动清理的特点与方法

        删除指定绝对路径下的文件,rm 可实现;如果知道文件名,不知道路径,可以通过 'find' 找到它,然后删除。推之,如果可根据预设的条件找到指定文件,就可以实施删除操作。这也是文件自动清理的基本思路,根据预设条件生成待删除文件列表,然后执行定期清楚任务实施删除操作。

        对于过期文件而言,他们共同标志是时间戳,根据不同的文件系统,可能是文件创建时间,访问时间,过期时间等不同的时间属性。由于过期文件大多存在于归档系统上,这类文件的特点是数量巨大,对于大型系统而言,每天的过期文件都可能达到数十万甚至百万的数量级。对于如此规模的文件数量,扫描文件系统,生成文件列表就需要大量的时间,所以 文件清理性能 是此类人物不得不考虑的问题。

        对于垃圾文件而言,有可能是存放在特定目录下的文件,也有可能是以特殊后缀名结尾的文件,还有可能是因为系统错误产生的 0 尺寸或者大尺寸的文件,对于这些文件而言,文件数量一般不大,但是种类比较繁多,情况比较复杂,需要根据系统管理员的经验,制定比较细致的文件查询条件,定期扫描,生成文件列表,然后进一步处理。

  2.2 相关 Linux 命名简介

       常用的文件系统管理命令包括 'ls','rm','find' 等待。鉴于这些命令都是常见的系统管理命令,详细用法可参见命令帮助或者 Linux 使用手册。由于大规模文件系统一般都存储在专用的文件系统上,这些文件系统都提供了独有的命令进行文件系统管理。本文实践章节以 IBM 的 GPFS 文件系统举例,以下简要介绍  GPFS 的若干文件系统管理命令。

      mmlsattr

      此命令主要用于查看 GPFS 文件系统中文件的扩展属性,如存储池信息,过期时间等属性。

      mmapplypolicy

      GPFS 采用策略对文件进行管理,此命令可以根据用户定义的策略文件,对 GPFS 文件系统执行各种操作,具有非常高的效率。

  2.3 大批量文件自动清理的难点

       2.3.1 Linux 文件删除机制