Linux下清理大批量文件最佳实践

发表于:2010-11-03 10:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:毛伟 李尚忠 戴斌    来源:51Testing软件测试网采编

#
Linux

  摘要:定期清理过期文件和垃圾文件,维持文件系统合理的空间使用率,是一个系统管理员的日常工作。如果确定哪些文件需要被清理,怎样清理大批量文件,怎样确保清理性能,都是系统管理员需要解决的难题。本文探讨了 Linux 下大批量文件自动清理的相关命令和方法,以及实际操作中的最佳实践。

  系统管理员的手中,管理着企业最有价值的资产——数据;而占据企业级服务器操作系统市场半壁江山的 Linux,更是让 Linux 系统管理员成为最重要的资产管理员。管理员的职责,就是让有限的 IT 资源,存储最有价值的数据。1991 年 IBM 推出 3.5 英寸 1GB 硬盘的时候,管理员洞悉硬盘上的每个文件,人工就可以实现文件管理;而今天 PB 级的存储设备,则给文件管理带来了前所未有的挑战。

  文件删除操作,用过 Linux 的人都应该可以完成。那么以下这些文件删除操作,你能完成哪些?

  1、删除整个文件系统中以特定后缀结尾的文件

  2、在一个有 1 百万的文件系统中删除某个指定文件

  3、从一个千万级的文件系统里,删除指定日期创建的 10 万个文件

  4、在亿级文件系统里,每天执行文件系统清理,删除 1 年前产生的上百万文件

  下面要讨论就是如何实现以上文件删除操作的策略和方法,如果以上操作对你来说轻而易举,可以忽略本文。

  对于清理文件系统而言,我们可以简单的把清理任务分成两大类,清理过期文件和清理垃圾文件。

  1、过期文件

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

  2、垃圾文件

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

  文件自动清理的概述

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

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

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

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

  相关 Linux 命令简介

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

  1、mmlsattr

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

  2、mmapplypolicy

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

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号