通用方案:专有云V3环境中TuboWorkerDebugInfo目录自动清理

通用方案:专有云V3环境中TuboWorkerDebugInfo目录自动清理

更新时间:2020-06-09 10:20:00

1. 概述

本文主要介绍在专有云V3环境中,伏羲的DEBUG信息如何自动清理。

1.1. 适用范围

  • 专有云V3,伏羲

1.2. 风险说明

DEBUG信息可以直接删除,不会影响服务。

2. 问题描述

在某些专有云版本中,伏羲的tubo#角色的worker进程在运行过程中会输出DEBUG信息,并保存在以下目录中,如果worker进程长时间没有重启过,会积累大量的数据导致磁盘占用率高,需要手动执行删除操作。

/apsara/tubo/data/TuboWorkerDebugInfo/

3. 解决方案

3.1. 环境检查

确认目录大小

登录问题主机,执行以下命令,确认/apsara/tubo/data/TuboWorkerDebugInfo/目录占用磁盘空间大。

du -sh /apsara/tubo/data/*

系统返回如下图所示。

确认crond进程运行

执行以下命令,确认crond进程运行正常。

ps axu|grep crond

系统返回如下图所示。

3.2. 实施步骤

创建计划任务脚本

在问题主机上执行以下命令,创建计划任务脚本。

vim /tmp/Delete_TuboWorkerDebugInfo.sh

脚本内容如下。

#!/bin/bash
crontab -l |grep TuboWorkerDebugInfo
if [ $? -eq 0 ];then
echo "has same task,exit!"
exit 1
fi
Times=`date +%s`
num1=`echo $RANDOM`
num2=`echo "$num1%60"|bc`
crontab -l >/tmp/crontabbak
cp /tmp/crontabbak /tmp/crontab.$Times
if [ -f /tmp/crontabbak ];then
echo "$num2 3 * * * rm -rf /apsara/tubo/data/TuboWorkerDebugInfo/* >/tmp/tubo_delete.log 2>&1" >>/tmp/crontabbak
else
echo "old crontab backup failed,pls check !exit now!!"
exit 2
fi
crontab /tmp/crontabbak

执行脚本

依次执行以下命令,切换至admin用户,并使脚本生效。

su – admin
sh /tmp/Delete_TuboWorkerDebugInfo.sh

说明:脚本会以admin用户身份添加crontab计划任务,该任务会在凌晨3~4点之间某个时间自动执行。

3.3. 结果验证

执行以下命令,确认crond服务添加了对应的计划任务则表示成功。

crontab -l

4. 回滚方案

  1. 执行以下命令,查看新增的计划任务。
    su - admin
    crontab -e
    系统返回类似如下。
  2. 删除以下的计划任务。

    rm -rf /apsara/tubo/data/TuboWorkerDebugInfo/* >/tmp/tubo_delete.log 2>&1" >>/tmp/crontabbak