服务定义
# cat /aliyun/bssopenapi/Service/ECS
POS:i-bp1citfvo78xxxx
POS:i-bp1citfvo78xxxxx
/aliyun/bssopenapi/chengbenfenxi/Middle.sh
#!/bin/bash
StartTime=$1
EndTime=$2
rm -rf /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List*
if [ "$StartTime" = "" ]||[ "$EndTime" = "" ];then
echo -e "\033[32m=====================================================脚本帮助提示================================================================= \033[0m";
echo -e "\033[32m=====本次操作必须传参数,参数的数量为2个 \033[0m";
echo -e "\033[32m=====请输入您要检查的月份格式必须如:2022-02-21,第二个参数必须是比第一个参数较晚的日期比如2022-02-29 \033[0m";
echo -e "\033[32m=====================================================脚本帮助提示================================================================= \033[0m";
exit;
else
TotalCount_Tag=`/usr/bin/aliyun bssopenapi QueryOrders --CreateTimeStart $StartTime\T00:00:00Z --CreateTimeEnd $EndTime\T00:00:00Z|grep TotalCount|awk -F: '{print ($2/100)}'|awk -F. '{print $1}'`
TotalCount_Number=`echo "$TotalCount_Tag"+1|bc`
for Page in $(seq 1 $TotalCount_Number)
do
/usr/bin/aliyun bssopenapi QueryOrders --CreateTimeStart $StartTime\T00:00:00Z --CreateTimeEnd $EndTime\T00:00:00Z --PageSize 100 --PageNum $Page|grep -v PretaxAmountLocal|grep -E 'OrderId|PretaxAmount|ProductCode'|awk '{if (NR%3==0) {print} else {printf "%s:",$0}}'|sed --expression='s/"//g' --expression='s/,//g'|awk '{print $2,$4,$NF}'
done > /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List
fi
for i in `cat /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List|awk -F: '{print $1}'`;do /usr/bin/aliyun bssopenapi GetOrderDetail --OrderId $i;done|grep -v PretaxAmountLocal|grep -E 'InstanceIDs|PretaxAmount|ProductCode'|awk '{if (NR%3==0) {print} else {printf "%s:",$0}}'|sed --expression='s/"//g' --expression="s/\[//g" --expression="s/\]//g" --expression='s/,//g' --expression='s/\\//g' --expression='s/://g'|awk '{print $2,$3,$6,$4}' >/aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List_Values
分析脚本
/aliyun/bssopenapi/chengbenfenxi/Action.sh
#!/bin/bash
StartTime=$1
EndTime=$2
rm -rf /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List*
if [ "$StartTime" = "" ]||[ "$EndTime" = "" ];then
echo -e "\033[32m=====================================================脚本帮助提示================================================================= \033[0m";
echo -e "\033[32m=====本次操作必须传参数,参数的数量为2个 \033[0m";
echo -e "\033[32m=====请输入您要检查的月份格式必须如:2022-02-21,第二个参数必须是比第一个参数较晚的日期比如2022-02-29 \033[0m";
echo -e "\033[32m=====================================================脚本帮助提示================================================================= \033[0m";
exit;
else
sh /aliyun/bssopenapi/chengbenfenxi/Middle.sh $StartTime $EndTime
rm -rf /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST
###云服务器ECS
for i in `less /aliyun/bssopenapi/chengbenfenxi/Service/ECS|awk -F: '{print $1}'|sort -u`; do grep_condition=`less /aliyun/bssopenapi/chengbenfenxi/Service/ECS |grep $i|awk -F: '{print $2}'|xargs|sed 's/ /|/g'`; values=`grep -E "$grep_condition" /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List_Values|awk '{print $NF}'|awk '{sum+=$1}END{print sum}'`; echo "$i-ECS:$values";done >/aliyun/bssopenapi/chengbenfenxi/Tmp/ECS_LIST
###数据库RDS
for i in `less /aliyun/bssopenapi/chengbenfenxi/Service/RDS|awk -F: '{print $1}'|sort -u`; do grep_condition=`less /aliyun/bssopenapi/chengbenfenxi/Service/RDS |grep $i|awk -F: '{print $2}'|xargs|sed 's/ /|/g'`; values=`grep -E "$grep_condition" /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List_Values|awk '{print $NF}'|awk '{sum+=$1}END{print sum}'`; echo "$i-RDS:$values";done >/aliyun/bssopenapi/chengbenfenxi/Tmp/RDS_LIST
###弹性ip地址EIP
for i in `less /aliyun/bssopenapi/chengbenfenxi/Service/EIP|awk -F: '{print $1}'|sort -u`; do grep_condition=`less /aliyun/bssopenapi/chengbenfenxi/Service/EIP |grep $i|awk -F: '{print $2}'|xargs|sed 's/ /|/g'`; values=`grep -E "$grep_condition" /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List_Values|awk '{print $NF}'|awk '{sum+=$1}END{print sum}'`; echo "$i-EIP:$values";done >/aliyun/bssopenapi/chengbenfenxi/Tmp/EIP_LIST
###KV服务REDIS
for i in `less /aliyun/bssopenapi/chengbenfenxi/Service/REDIS|awk -F: '{print $1}'|sort -u`; do grep_condition=`less /aliyun/bssopenapi/chengbenfenxi/Service/REDIS |grep $i|awk -F: '{print $2}'|xargs|sed 's/ /|/g'`; values=`grep -E "$grep_condition" /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List_Values|awk '{print $NF}'|awk '{sum+=$1}END{print sum}'`; echo "$i-REDIS:$values";done >/aliyun/bssopenapi/chengbenfenxi/Tmp/REDIS_LIST
###云负载均衡SLB
for i in `less /aliyun/bssopenapi/chengbenfenxi/Service/SLB|awk -F: '{print $1}'|sort -u`; do grep_condition=`less /aliyun/bssopenapi/chengbenfenxi/Service/SLB |grep $i|awk -F: '{print $2}'|xargs|sed 's/ /|/g'`; values=`grep -E "$grep_condition" /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List_Values|awk '{print $NF}'|awk '{sum+=$1}END{print sum}'`; echo "$i-SLB:$values";done > /aliyun/bssopenapi/chengbenfenxi/Tmp/SLB_LIST
echo "========================================分割线===============================================";
less /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST|grep POS
POS_Values=`less /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST|grep POS|awk -F: '{print $NF}'|awk '{sum+=$1}END{print sum}'`
echo -e "\033[32m百胜POS(¥):$POS_Values\033[0m";
echo "========================================分割线===============================================";
echo "========================================分割线===============================================";
less /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST|grep NCC
NCC_Values=`less /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST|grep NCC|awk -F: '{print $NF}'|awk '{sum+=$1}END{print sum}'`
echo -e "\033[32m用友NCC(¥):$NCC_Values\033[0m";
echo "========================================分割线===============================================";
echo "========================================分割线===============================================";
DATA_Only=`less /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List_Values|grep -E 'clickhouse|dds|hdm|cbn|dide|hdm|odpsplus'|awk '{print $NF}'|awk '{sum+=$1}END{print sum}'`
less /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST|grep DATA
DATA_Values=`less /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST|grep DATA|awk -F: '{print $NF}'|awk '{sum+=$1}END{print sum}'`
if [ "$DATA_Only" == "" ];then DATA_Only=0;fi
if [ "$DATA_Values" == "" ];then DATA_Values=0;fi
DATA_Tota_Values=`echo "$DATA_Only+$DATA_Values"|bc `
echo "DATA_Only:$DATA_Only";
echo -e "\033[32m数据中台(¥):$DATA_Tota_Values\033[0m";
echo "========================================分割线===============================================";
echo "========================================分割线===============================================";
less /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST|grep ONEID
ONEID_Values=`less /aliyun/bssopenapi/chengbenfenxi/Tmp/*_LIST|grep ONEID|awk -F: '{print $NF}'|awk '{sum+=$1}END{print sum}'`
echo -e "\033[32m易溯一物一码(¥):$ONEID_Values\033[0m";
echo "========================================分割线===============================================";
echo "========================================分割线===============================================";
Total_Values=`less /aliyun/bssopenapi/chengbenfenxi/Tmp/All_Order_List_Values |awk '{print $NF}'|awk '{sum+=$1}END{print sum}'`
if [ "$POS_Values" == "" ];then POS_Values=0;fi
if [ "$NCC_Values" == "" ];then NCC_Values=0;fi
if [ "$DATA_Tota_Values" == "" ];then DATA_Tota_Values=0;fi
if [ "$ONEID_Values" == "" ];then ONEID_Values=0;fi
BOSS_Values=`echo "$Total_Values-$POS_Values-$NCC_Values-$DATA_Tota_Values-$ONEID_Values"|bc`
echo -e "\033[32m业务中台(¥):$BOSS_Values\033[0m";
echo "========================================分割线===============================================";
fi
执行效果如下
sh /aliyun/bssopenapi/chengbenfenxi/Action.sh 2022-02-21 2022-02-26
========================================分割线===============================================
POS-ECS:253.54
POS-RDS:
POS-REDIS:
POS-SLB:
百胜POS(¥):253.54
========================================分割线===============================================
========================================分割线===============================================
NCC-ECS:
NCC-EIP:
NCC-SLB:
用友NCC(¥):0
========================================分割线===============================================
========================================分割线===============================================
DATA-ECS:18.37
DATA-EIP:
DATA-RDS:
DATA-SLB:
DATA_Only:0
数据中台(¥):18.37
========================================分割线===============================================
========================================分割线===============================================
ONEID-ECS:
ONEID-RDS:
ONEID-REDIS:
ONEID-SLB:
易溯一物一码(¥):0
========================================分割线===============================================
========================================分割线===============================================
业务中台(¥):1198.40
========================================分割线===============================================