将 soc 剩余内存 和cpu 资源 写入mysql 数据库中 【对数据库进行增删改查 shell 脚本】

#!/bin/bash
set -x
list=(
    # $1
10.56.31.xxx
10.56.31.xxx
10.56.216.xxx
10.56.31.xxx
10.56.31.xxx
10.56.31.xxx
10.56.216.xxx
10.56.31.xxx
10.56.31.xxx
10.56.31.xxx
)

soc_information(){
    i=$1
    a=$(timeout 4 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "virsh list --all | awk '/i-/{print \$2}'")
        if [ -z ${a:0:1} ]
        then
            date_time=`date +%Y-%m-%d-%H:%M:%S`
            host_id=$(timeout 10 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "cat /var/lib/volcstack/helium.yaml | grep id|awk '{print \$2}'")
            helium_status=$(timeout 10 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "docker ps -a | grep helium|awk '{print \$8}'")
            keyong_cpu=$(timeout 10 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "sshpass -p '2ytE!r00tme' ssh -o StrictHostKeyChecking=no -p 2222 localhost  lscpu|grep -v NUMA |grep -w 'CPU(s):'| awk '{print \$2}'")
            neicun=$(timeout 10 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "cat /mnt/sys/kernel/debug/dmem/free_dpages")
            # echo $neicun#换算之前的内存
            keyong_neicun=`expr $neicun \* 2 \* 64 / 63 / 1024`
            echo "可用内存 $keyong_neicun"
            echo $keyong_cpu
            #判断数据库中是否已有数据,如果有就update没有就insert
            sql=`mysql -h localhost -u root -p'root@123' -D ceshi -e "select ip from host_table where ip='$i'"`
            echo $sql
            if [ -z $sql ]
            then
                echo '使用insert 语句'
                mysql -h localhost -u root -p'root@123' -D ceshi -e "INSERT INTO host_table  VALUES ('$i', '$host_id', '$keyong_neicun','$keyong_cpu','$keyong_cpu','$helium_status','$date_time',NULL);"

            else
                echo '使用update语句'
                mysql -h localhost -u root -p'root@123' -D ceshi -e "update  host_table set host_id='$host_id',keyong_neicun='$keyong_neicun',keyong_cpu='$keyong_cpu',zong_cpu='$keyong_cpu',helium_status='$helium_status',update_time='$date_time' where ip='$i';"
            fi
        else
            date_time=`date +%Y-%m-%d-%H:%M:%S`
            host_id=$(timeout 10 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "cat /var/lib/volcstack/helium.yaml | grep id|awk '{print \$2}'")
            helium_status=$(timeout 10 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "docker ps -a | grep helium|awk '{print \$8}'")
            neicun=$(timeout 10 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "cat /mnt/sys/kernel/debug/dmem/free_dpages")
            # echo $neicun换算之前的内存
            keyong_neicun=`expr $neicun \* 2 \* 64 / 63 / 1024`
            echo "可用内存 $keyong_neicun"
            hostcpu=$(timeout 10 sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "sshpass -p '2ytE!r00tme' ssh -o StrictHostKeyChecking=no -p 2222 localhost  lscpu|grep -v NUMA |grep -w 'CPU(s):'| awk '{print \$2}'")
                echo $hostcpu
                cpus=0
                for p in $a
                do
                    c=$(timeout 10 sshpass -p 'root@123' ssh   root@$i "virsh dominfo $p |grep 'CPU(s)'|awk '{print \$2}'")
                    # echo $c
                    cpus=`expr $cpus + $c`
                done
                # echo $cpus
                # echo "soc $i 剩余可用cpu数量为`expr $hostcpu - $cpus`"
        keyong_cpu=`expr $hostcpu - $cpus`
        echo $keyong_cpu
        
        #判断数据库中是否已有数据,如果有就update没有就insert
        sql=`mysql -h localhost -u root -p'root@123' -D ceshi -e "select ip from host_table where ip='$i'"`
        if [ -z $sql  ]
        then
                echo '使用insert 语句'
                mysql -h localhost -u root -p'root@123' -D ceshi -e "INSERT INTO host_table  VALUES ('$i', '$host_id', '$keyong_neicun','$keyong_cpu','$hostcpu','$helium_status','$date_time',NULL);"
                
        else
                echo '使用update语句'
                mysql -h localhost -u root -p'root@123' -D ceshi -e "update  host_table  set host_id='$host_id',keyong_neicun='$keyong_neicun', keyong_cpu='$keyong_cpu', zong_cpu='$hostcpu',helium_status='$helium_status',update_time='$date_time' where  ip='$i';"
                
        fi
        fi
}
start=`date "+%s"`
for i in ${list[*]}
do
{
    soc_information $i
    }&
done
wait
end=`date "+%s"`
echo "time: `expr $end - $start`"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值