vc下线清理资源池脚本-第一版
#!/bin/bash
#set -euo pipefail
source /home/gbase/.gbase_profile
workdir=$(cd `dirname $0`;pwd)
cd ${workdir}
#数据库gbas密码:
user=xxxx
pass=xxxx
#清理资源池的vc名字
vc_name=${1}
#获取vc_id
vc_id=`gccli -u${user} -p${pass} -e"show vcs" | grep -w ${vc_name} | awk '{print $1}'`
#资源管理实效
gccli -u${user} -p${pass} -e"deactive resource plan on vc ${vc_name};"
resource=`gccli -u${user} -p${pass} -e"select config_int_value from gbase.resource_config where config_name='active_resource_plan_id' and vc_id='${vc_id}';"| grep -iv config_int_value `
if [ ${resource} -eq 0 ]; then
echo "资源管控已关闭"
else
echo "资源管控未关闭"
fi
#清理用户组下用户
grep_user_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select a.user_name||'+'||b.consumer_group_name from consumer_group_user a join consumer_group b on a.consumer_group_id=b.consumer_group_id where b.vc_id='${vc_id}'" | grep -iv consumer_group`
for group_user_info in `echo ${grep_user_list}`
do
group_name=`echo ${group_user_info}|awk -F'+' '{print $2}'`
user_name=`echo ${group_user_info}|awk -F'+' '{print $1}'`
gccli -u${user} -p${pass} -e"use vc ${vc_name}; ALTER CONSUMER GROUP ${group_name} REMOVE USER ${user_name};"
done
grep_user_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from consumer_group_user a join consumer_group b on a.consumer_group_id=b.consumer_group_id where b.vc_id='${vc_id}'" | grep -iv count`
if [ ${grep_user_num} -eq 0 ]; then
echo "资源池相关用户清理完成"
else
echo "资源池相关用户清理未完成"
fi
#清理资源管理组
resource_plan_directive_name_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select resource_plan_directive_name from resource_plan_directive where vc_id='${vc_id}'" | grep -iv resource_plan_directive_name`
for resource_plan_directive_name_info in `echo ${resource_plan_directive_name_list}`
do
gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP RESOURCE DIRECTIVE ${resource_plan_directive_name_info};"
done
resource_plan_directive_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from resource_plan_directive where vc_id='${vc_id}'" | grep -iv count`
if [ ${resource_plan_directive_name_num} -eq 0 ]; then
echo "资源管理绑定关系清理完成"
else
echo "资源管理绑定关系清理未完成"
fi
#清理用户组
consumer_group_name_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select consumer_group_name from consumer_group where vc_id='${vc_id}'" | grep -iv consumer_group_name`
for consumer_group_name_info in `echo ${consumer_group_name_list}`
do
gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP CONSUMER GROUP ${consumer_group_name_info};"
done
consumer_group_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from consumer_group where vc_id='${vc_id}'" | grep -iv count`
if [ ${consumer_group_name_num} -eq 0 ]; then
echo "用户组清理完成"
else
echo "用户组清理未完成"
fi
#清理计划
resource_plan_name_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select resource_plan_name from resource_plan where vc_id='${vc_id}'" | grep -iv resource_plan_name`
for resource_plan_name_info in `echo ${resource_plan_name_list}`
do
gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP RESOURCE PLAN ${resource_plan_name_info};"
done
resource_plan_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from resource_plan where vc_id='${vc_id}'" | grep -iv count`
if [ ${resource_plan_name_num} -eq 0 ]; then
echo "资源计划清理完成"
else
echo "资源计划清理未完成"
fi
#清理动态池:
resource_pool_name_list=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select resource_pool_name from resource_pool where vc_id='${vc_id}'" | grep -ivE "resource_pool_name|static"`
for resource_pool_name_info in `echo ${resource_pool_name_list}`
do
gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP RESOURCE POOL ${resource_pool_name_info};"
done
resource_pool_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from resource_pool where vc_id='${vc_id}'" | grep -iv count`
if [ ${resource_pool_name_num} -eq 1 ]; then
echo "动态池清理完成"
else
echo "动态池清理未完成"
fi
#清理静态池:
resource_pool_name=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select resource_pool_name from resource_pool where vc_id='${vc_id}'" | grep -iv resource_pool_name`
gccli -u${user} -p${pass} -e"use vc ${vc_name}; DROP RESOURCE POOL ${resource_pool_name};"
resource_pool_name_num=`gccli -u${user} -p${pass} -e"use vc ${vc_name};use gbase; select count(*) from resource_pool where vc_id='${vc_id}'" | grep -iv count`
if [ ${resource_pool_name_num} -eq 0 ]; then
echo "静态池清理完成"
else
echo "静态池清理未完成"
fi
评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526