通过OOS定期清理磁盘空间

在由多台ECS实例组成的分布式应用系统中,每台实例上的应用程序会生成大量的日志文件。随着时间的推移,这些日志文件迅速累积,占用大量磁盘空间,可能导致磁盘空间不足,影响应用性能和服务的稳定性。您可以通过系统运维管理 OOS(CloudOps Orchestration Service)设置一条或多条规则批量、定时、自动清理磁盘文件,防止因磁盘空间不足引发的性能问题,确保系统稳定运行。

说明

系统运维管理 OOS(CloudOps Orchestration Service)是全面、免费的云上自动化运维平台,提供运维任务的管理和执行,可以帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。更多信息,请参见什么是系统运维管理

前提条件

  • 请确保ECS实例的状态为运行中(Running)。

  • OOS的运维任务依赖云助手,请确保ECS实例已安装云助手Agent。具体操作,请参见安装云助手Agent

操作步骤

重要

在执行清理任务前,强烈建议您对ECS实例做好数据备份,例如为云盘创建快照,避免数据丢失。

  1. 登录系统运维管理 OOS(CloudOps Orchestration Service)控制台

  2. 在左侧导航栏,选择自动化任务 > 常用运维任务 > 清理磁盘,然后单击创建

    image

  3. 设置规则区域,设置磁盘的文件保留时间单位清理路径清理文件等。

    例如,设置/home/admin/logs/目录下的*.log文件保留时间为7天后会自动清理。

    image

    您可以根据业务需要单击规则右侧的image图标,自行添加清理文件和清理路径。

    重要

    请您确保清理路径和清理文件的准确性,避免误删重要数据。

  4. 单击清理时间,设置该任务的执行时间以及执行相关操作时权限的来源。

    • 定时类型:选择周期性重复执行,并设置重复频率

      可以通过快速选择和Cron表达式两种方式设置重复频率,本文以Cron表达式设置。关于Cron表达式的更多信息,请参见Cron表达式

      例如,需要在中国/上海时间,2024-08-31 23:00:00之前的每月5日23:00:00执行清理任务,设置的时间信息如下:

      image

    • 执行使用到的权限的来源:选择(默认设置)指定RAM角色,使用该角色的权限,并选择OOS默认角色OOSServiceRole的权限来执行任务。更多信息,请参见为OOS服务设置RAM权限

  5. 单击选择实例,在实例列表中选择多台目标实例。

    image

  6. 单击高级选项(可选),选择速率控制类型并发控制,并设置并发速率,以及最大错误次数

    • 速率控制类型

      • 并发控制:保持设置的并发速率,直到所有任务结束。适合需要控制资源使用、避免资源过度消耗的应用场景。

      • 批次控制:预先把任务分成多个批次,然后一个批次运行完再运行下一个批次。适合需要控制执行节奏、减少瞬时压力或者确保数据处理顺序的应用场景。

    • 并发速率:指定一个数值或者百分比来控制并发速率。本示例设置为1,表示每次执行1台实例。

    • 最大错误次数:指定任务在停止前的最大错误次数,可以是数值或者百分比,默认值是0,表示有1个错误时整个任务就会结束。若设置为100%则表示无论遇到多少错误整个执行都会成功。

    image

  7. 执行设置(可选)保持默认设置,然后单击创建

  8. 在弹出的参数确认对话框,确认需要相关信息,然后单击确定

  9. 查看任务执行详情。

    在任务列表操作列单击详情,即可查看任务执行详情。

    image