kvm物理接口发现的脚本COLT_CMDB_KVM_IFACE.sh
#!/bin/sh
#!/bin/bash
#IT_BEGIN
#IT_TYPE=3
#IT SYSTEM_kvm_discinterface|discovery.iface[disc]
#普通指标
#IT_RULE SYSTEM_kvm_IP|ip[{#ifaceName}]
#IT_RULE SYSTEM_kvm_ifaceName|ifaceName[{#ifaceName}]
#IT_RULE SYSTEM_kvm_ifacestatus|ifacestatus[{#ifaceName}]
#IT_RULE SYSTEM_kvm_ifaceMAC|ifaceMAC[{#ifaceName}]
#IT_END
shname=`basename $0`
ATTR="_X(g=$shname,p=cmdb,t=script,f=0)"if [ "$1" = "disc" ];then
virsh iface-list|grep -v MAC|sed '1d'|grep -v '^$'|while read line
doifaceName=`echo $line |awk '{print $1}'`echo "{#ifaceName}="$ifaceName
done
exit 0
fi
#ip=$(ifconfig -a | grep inet |grep -v 127.0.0.1 | grep -v "broadcast 0.0.0.0" | grep -v inet6 |awk '{print $2}' |cut -d ':' -f 2 | tr "\n" "," |sed 's/.$//g')
if command -v ifconfig >/dev/null 2>&1; thenip=`ifconfig -a | grep inet |grep -v 127.0.0.1 | grep -v "broadcast 0.0.0.0" | grep -v inet6 |awk '{print $2}' |cut -d ':' -f 2 | tr "\n" "," |sed 's/.$//g'`
elif command -v ip >/dev/null 2>&1; thenip=`ip addr show| grep inet |grep -v 127.0.0.1 | grep -v "broadcast 0.0.0.0" | grep -v inet6 |awk '{print $2}' |cut -d '/' -f 1 | tr "\n" " " |sed 's/.$//g'`
elif command -v hostname >/dev/null 2>&1; thenip=`hostname -I|tr " " ","| awk '{print substr($0, 1, length($0)-1)}'`
elseecho "command ifconfig or ip or hostname not exist!!!"
fi
#多指标输出开始
echo COL_DETAIL_START:#物理接口
virsh iface-list|grep -v MAC|sed '1d'|grep -v '^$'|while read line
doifaceName=`echo $line |awk '{print $1}'`ifacestatus=`echo $line |awk '{print $2}'`ifaceMAC=`echo $line |awk '{print $3}'`echo "ip[$ATTR,$ifaceName]|+|$ip"echo "ifaceName[$ATTR,$ifaceName]|+|$ifaceName"echo "ifacestatus[$ATTR,$ifaceName]|+|$ifacestatus"echo "ifaceMAC[$ATTR,$ifaceName]|+|$ifaceMAC"
done
#多指标输出结束
echo COL_DETAIL_END:
10.14.104.4执行结果如下:
-bash-4.2# sh COLT_CMDB_KVM_IFACE.sh
COL_DETAIL_START:
ip[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),br0]|+|192.168.1.227,172.17.0.1,10.14.104.4,192.168.122.1
ifaceName[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),br0]|+|br0
ifacestatus[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),br0]|+|活动
ifaceMAC[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),br0]|+|fe:54:00:04:94:18
ip[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),em1]|+|192.168.1.227,172.17.0.1,10.14.104.4,192.168.122.1
ifaceName[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),em1]|+|em1
ifacestatus[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),em1]|+|活动
ifaceMAC[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),em1]|+|34:48:ed:f8:7a:08
ip[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),lo]|+|192.168.1.227,172.17.0.1,10.14.104.4,192.168.122.1
ifaceName[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),lo]|+|lo
ifacestatus[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),lo]|+|活动
ifaceMAC[_X(g=COLT_CMDB_KVM_IFACE.sh,p=cmdb,t=script,f=0),lo]|+|00:00:00:00:00:00
COL_DETAIL_END: