Edit file File name : check_a2_dmi.sh.all Content :#!/bin/bash # DMI - OS information collector check_mk script # HOSTNAME=$(hostname) BOARD=$(dmidecode 2>/dev/null | grep "Product Name" | tail -n1 | awk '{print $3}') OS_VERSION=$(cat /etc/redhat-release) # check if server is core or managed using minion file if [ ! -f /etc/salt/minion ] || grep -q "10.10.10.14" /etc/salt/minion; then SERVER_TYPE="Core" else SERVER_TYPE="Managed" fi #Don't do anything on Xen or KVM if [ -e /sys/hypervisor/uuid ]; then UUID=$(cat /sys/hypervisor/uuid) if [ "${UUID}" != "00000000-0000-0000-0000-000000000000" ]; then #Xen DomU do nothing echo "A2Inventory - Host:${HOSTNAME} OS:${OS_VERSION} Platform:DomU ${BOARD} Type:${SERVER_TYPE}" exit 0 fi elif [ -e /sys/kernel/debug/kvm-guest ] || [[ $(grep KVM /var/log/dmesg 2>/dev/null) == *"KVM"* ]]; then #KVM box do nothing echo "A2Inventory - Host:${HOSTNAME} OS:${OS_VERSION} Platform:KVM ${BOARD} Type:${SERVER_TYPE}" exit 0 fi #Load IPMI module which probably isn't loaded if ! grep -q ipmi_si /proc/kallsyms 2>/dev/null; then modprobe -q ipmi_si >/dev/null 2>&1 if [[ $? -ne 0 ]]; then modprobe -q ipmi_devintf >/dev/null 2>&1 if [[ $? -ne 0 ]]; then #Can't load any of the IPMI stuff, do nothing echo "A2Inventory - Host:${HOSTNAME} OS:${OS_VERSION} Non-IPMI ${BOARD} Type:${SERVER_TYPE}" exit 0 fi else #This modules takes a bit to initialize, do nothing until next round echo "A2Inventory - Host:${HOSTNAME} OS:${OS_VERSION} IPMIInit ${BOARD} Type:${SERVER_TYPE}" exit 0 fi elif ! grep -q ipmi_devintf /proc/kallsyms 2>/dev/null; then modprobe -q ipmi_devintf >/dev/null 2>&1 if [[ $? -ne 0 ]]; then #Can't load any of the IPMI stuff, do nothing echo "A2Inventory - Host:${HOSTNAME} OS:${OS_VERSION} Non-IPMI ${BOARD} Type:${SERVER_TYPE}" exit 0 fi fi if [[ -e /opt/bin/ipmicfg ]]; then IPMI=$(/opt/bin/ipmicfg -m) if [[ "${IPMI}" == *"kcs"* ]]; then echo "A2Inventory - ${HOSTNAME} Non-IPMI ${BOARD} Type:${SERVER_TYPE}" exit 0 else IPMIIP=$(echo "${IPMI}" | grep IP | cut -d= -f2) FRU=$(/opt/bin/ipmicfg -fru PAT) if [ "${FRU}" != "A2:${HOSTNAME}:${BOARD}" ]; then /opt/bin/ipmicfg -fru PAT "A2:${HOSTNAME}:${BOARD}" >/dev/null fi fi fi echo "A2Inventory - Host:${HOSTNAME} OS:${OS_VERSION} ${IPMIIP} ${BOARD} Type:${SERVER_TYPE}" exit 0 Save