本文主要介绍在专有云V3环境中,伏羲集群的机器中FuxiMonitor服务的stdout日志文件自动清理方法。
专有云V3,伏羲
说明:仅适用于专有云V3.7之前的版本。
清理脏数据无风险。
在专有云V3版本的伏羲集群的机器中,FuxiMonitor服务存在漏洞,stdout.XXXXXX
日志文件不会自动清理,需要增加定时任务进行自动清理。
登录天基控制台,在左侧Project框中搜索tianji,选择tianji-XXXXXX集群,单击集群右侧的集群运维中心,进入集群运维中心页面。
选择fuxi服务,选择Tubo#服务角色,单击服务器右侧的Terminal,登录磁盘空间发生报警的Tubo#服务角色对应机器。
进入/apsara/cloud/data/fuxi/FuxiMonitor#/fuxi_monitor
目录,执行以下命令,确认是stdout.XXXXXX
日志文件占用磁盘空间过大。
ll -hrt
系统显示类似如下。
执行以下命令,确认存在crond进程。
ps axu|grep crond
登录磁盘空间发生报警的Tubo#服务角色对应机器,在/tmp
目录下编辑Delete_FuxiMonitor_stdout.sh
脚本文件,添加以下内容。
#!/bin/bash crontab -l |grep fuximonitor_delete 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 2 * * * find /apsara/cloud/data/fuxi/FuxiMonitor#/fuxi_monitor/ -type f -name 'stdout.*' -print -exec cp /dev/null {} \;>/tmp/fuximonitor_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
执行以下命令,运行脚本文件,脚本文件会自动在admin用户上添加Crontab计划任务,该计划任务会在凌晨2点到3点之间的某个时间执行。
sh /tmp/Delete_FuxiMonitor_stdout.sh
执行以下命令,确认存在对应的计划任务。
crontab -l|grep FuxiM
系统显示类似如下。
执行以下命令,清空/apsara/cloud/data/fuxi/FuxiMonitor#/fuxi_monitor/
目录下的stdout.XXXXXX
日志文件。
find /apsara/cloud/data/fuxi/FuxiMonitor#/fuxi_monitor/ -type f -name 'stdout.*' -print -exec cp /dev/null {} \;
df -h
确认stdout.XXXXXX
日志文件的大小变成0字节。
删除新增加的Crontab计划任务。