虚机迁移测试之前,检测目标soc 资源是否 充足 shell 脚本

该bash脚本用于检查远程Linux主机上的虚拟机列表,并根据传入参数分配CPU和内存。它通过SSH连接到主机,使用virsh命令获取虚拟机信息,lscpu获取CPU数量,以及计算可用内存。脚本会检查是否有足够的资源来创建指定配置的新虚拟机。
摘要由CSDN通过智能技术生成
#!/bin/bash
# set -x
list=(
    $1
)


if [ $2 -eq 2 ]
then 
    vm_neicun=8
elif [ $2 -eq 4 ]
then 
    vm_neicun=16
elif [ $2 -eq  8 ]
then 
    vm_neicun=32
elif [ $2 -eq  16 ]
then 
    vm_neicun=64
elif [ $2 -eq  32 ]
then 
    vm_neicun=128
elif [ $2 -eq  48 ]
then 
    vm_neicun=192
elif [ $2 -eq  64 ]
then 
    vm_neicun=256
elif [ $2 -eq  96 ]
then 
    vm_neicun=384
elif [ $2 -eq  192 ]
then 
    vm_neicun=512
fi
vm_cpu=$2

# echo  'vm_cpu:==' $vm_cpu 'vm_neicun:==' $vm_neicun
node_list=('node0' 'node1')

for i in ${list[@]}
do
    a=$(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`
        keyong_cpu=$(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=$(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 $keyong_neicun
        keyong_cpu=`expr $hostcpu - $cpus`
        echo 'success'
        echo 'success'
    else
        for node  in  ${node_list[@]}
        do
            date_time=`date +%Y-%m-%d-%H:%M:%S`
            neicun=$(sshpass -p 'root@123' ssh -o StrictHostKeyChecking=no root@$i "cat /mnt/sys/kernel/debug/dmem/$node/free_dpages")
            # echo $neicun换算之前的内存
            keyong_neicun=`expr $neicun \* 2 \* 64 / 63 / 1024`
            # echo "可用内存 $keyong_neicun"
            hostcpu=$(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=$(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`
            if [ $keyong_cpu -ge $vm_cpu ] && [ $keyong_neicun -ge $vm_neicun ]
            then 
                echo 'success'
                break
            else
                echo 'err'
            fi   
        done
    fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值