统计数据节点临时空间占用大小-数据节点脚本
部分内容请根据实际情况填写
#!/bin/bash
source /home/gbase/.bashrc
workdir=$(cd `dirname $0`;pwd)
cd ${workdir}
file_date=`date +"%Y%m%d"`
lg=${workdir}/${file_date}.lg
tmp=${workdir}/tmp
tmp1=${workdir}/tmp1
coor_list_file=${workdir}/coor_list_file
>${tmp}
>${tmp1}
date_time=`date +"%Y-%m-%d:%H:%M:%S"`
gbaseuser=$(cat /home/gbase/gbase_config/gbase_passconfig |grep -w user|awk -F '=' '{print $2}')
pss_user=$(dc -e ${gbaseuser}P )
pass=$(cat /home/gbase/gbase_config/gbase_passconfig |grep -w password|awk -F '=' '{print $2}')
pss=$(dc -e ${pass}P )
localhost_ip=`/usr/sbin/ifconfig bond1 |grep netmask |awk '{print $2}'`
echo ${date_time} >>${lg}
echo "统计文件大小:" >>${lg}
du -s /opt/GBase8aMPP/gnode/tmpdata/cache_gbase >>${lg}
du -s /opt/GBase8aMPP/gnode/tmpdata/cache_gbase/HashJoin >>${lg}
du -s /opt/GBase8aMPP/gnode/tmpdata/cache_gbase/tmp_longblob >>${lg}
du -s /opt/GBase8aMPP/gnode/tmpdata/cache_gbase/tmp_materialized >>${lg}
du -s /opt/GBase8aMPP/gnode/tmpdata/cache_gbase/TrashCan >>${lg}
du -s /opt/GBase8aMPP/gnode/userdata/gbase/gctmpdb >>${lg}
du -s /opt/GBase8aMPP/gnode/userdata/gbase/gctmpdb/sys_tablespace >>${lg}
du -s /opt/GBase8aMPP/gnode/userdata/gbase/gctmpdb/metadata >>${lg}
timeout 2 gncli -u${pss_user} -p${pss} -h${localhost_ip} -P5050 -e'select 1;' >>/dev/null
if [ $? -eq 0 ]; then
echo ${date_time}":数据节点连接正常-继续" >>${lg}
else
echo "0:链接异常"
echo ${date_time}":数据节点连接超时-停止" >>${lg}
exit 1
fi
patch_num=`ls /opt/GBase8aMPP/gnode/tmpdata/cache_gbase/* | grep express_tmp |wc -l`
echo "统计tmpdata类型临时文件数量:"${patch_num}>>${lg}
if [[ ${patch_num} != '0' ]]; then
tmp_hc_patch_num_list=`du -s /opt/GBase8aMPP/gnode/tmpdata/cache_gbase/* |grep express_tmp |awk -F'_GB_' '{print $1}' | awk '{print $2" "$1}'|awk -F'gbase/s' '{print $2}'| awk '{sum[$1]+=$2}END{for(i in sum){print i"+"sum[i]}}' | sed -r 's/0*([0-9])/\1/'`
for tmp_hc_patch_num_a in ${tmp_hc_patch_num_list}
do
node_id=`echo ${tmp_hc_patch_num_a} |awk -F'+' '{print $1}'`
node_disk=`echo ${tmp_hc_patch_num_a} |awk -F'+' '{print $2}'`
data_sql=`gncli -u${pss_user} -p${pss} -h${localhost_ip} -P5050 -vvv -e 'show full processlist;' |grep -w ${node_id}`
coorip=`echo ${data_sql} | awk -F'|' '{print $5}'|awk -F':' '{print $1}'|awk '{print $1}'`
coorid=`echo ${data_sql} | awk -F "${coorip}" '{print $3}' |awk -F'_' '{print $2}'`
echo ${coorip}"_"${coorid}"+"${node_disk} >>${lg}
echo ${coorip}"_"${coorid}"+"${node_disk} >>${tmp}
done
else
echo "文件数为0不需要统计" >>${lg}
fi
patch_num=`ls /opt/GBase8aMPP/gnode/userdata/gbase/gctmpdb/sys_tablespace/ | grep _tmp_ |wc -l`
echo "统计gctmpdb类型临时文件数量:"${patch_num} >>${lg}
if [[ ${patch_num} != '0' ]]; then
tmp_hc_patch_num_list=`du -s /opt/GBase8aMPP/gnode/userdata/gbase/gctmpdb/sys_tablespace/* |awk -F'_tmp_' '{print $1" "$2}' |awk '{print $1" "$3}' |sed 's/rht_//g'| awk -F'_t' '{print $1}' |awk '{print $2" "$1}' | awk '{sum[$1]+=$2}END{for(i in sum){print i"+"sum[i]}}'`
for tmp_hc_patch_num_a in ${tmp_hc_patch_num_list}
do
node_id=`echo ${tmp_hc_patch_num_a} |awk -F'+' '{print $1}'`
node_disk=`echo ${tmp_hc_patch_num_a} |awk -F'+' '{print $2}'`
coorip1=`echo ${node_id} |awk -F'_' '{print $1}'`
coorid1=`echo ${node_id} |awk -F'_' '{print $2}'`
coorip2=`cat ${coor_list_file} |grep ${coorip1} | awk -F'+' '{print $2}'`
echo ${coorip2}"_"${coorid1}"+"${node_disk} >>${lg}
echo ${coorip2}"_"${coorid1}"+"${node_disk} >>${tmp}
done
else
echo "文件数为0不需要统计" >>${lg}
fi
for tmp_num in `cat ${tmp}`
do
tmp_num_a=`echo ${tmp_num} |awk -F'+' '{print $2}'`
if [[ ${tmp_num_a} != '0' ]]; then
echo ${tmp_num} >>${tmp1}
else
echo ${tmp_num}"大小为0不统计" >> ${lg}
fi
done
cat ${tmp1} | awk -F'+' '{sum[$1]+=$2}END{for(i in sum){print i"+"sum[i]}}' >${tmp}
echo "结果为:" >>${lg}
cat ${tmp1} | awk -F'+' '{sum[$1]+=$2}END{for(i in sum){print i"+"sum[i]}}' >>${lg}
disk_path=`df -h /opt/GBase8aMPP |grep -iv use |grep -iv 已用|awk '{print $5}' | awk -F'%' '{print $1}'`
tmp4=`cat ${tmp} |wc -l`
tmp3=''
for a in `cat ${tmp}`
do
tmp3=${a}";"${tmp3}
done
echo "1:"${disk_path}";"${tmp4}":"${tmp3}
tar_date=`date +"%-d"`
if [[ ${tar_date} -eq 25 ]]; then
tar1=`date -d"last month" +%Y%m`
lg1=`ls ${workdir}/* |grep ${tar1} |wc -l`
if [[ ${lg1} -gt 0 ]];then
rm -rf ${workdir}/${tar1}*
fi
fi
评论
热门帖子
- 12025-12-01浏览数:182763
- 22023-05-09浏览数:25057
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17528