usr/lib/observium_agent/scripts-available/proxmox-qemu aktualisiert

Nach Erweiterung von Alex Koppe (qm guest cmd ${vmid} get-osinfo | jq -r '.["pretty-name"]') um einen exakten OS Namen aus einer laufenden VM zu bekommen, weitere Erweiterung vorgenommen diese Info zu cachen und sollte "qm guest cmd VMID get-osinfo" keine Info (mehr) liefern die Info aus dem Cache zu liefern.
This commit is contained in:
ageissler
2024-12-30 17:57:39 +01:00
parent af322c421e
commit 3e5d7465cc

View File

@@ -18,18 +18,41 @@ then
fi fi
count=`echo $JSON | jq '. | length' ` count=`echo $JSON | jq '. | length' `
CACHE="/usr/lib/observium_agent/scripts-enabled/cached"
for ((i=0; i<$count; i++)); do for ((i=0; i<$count; i++)); do
name=`echo $JSON | jq -r '.['$i'].name'` name=`echo $JSON | jq -r '.['$i'].name'`
vmid=`echo $JSON | jq -r '.['$i'].vmid'` vmid=`echo $JSON | jq -r '.['$i'].vmid'`
ostype=`cat /etc/pve/qemu-server/${vmid}.conf | grep ostype | awk '{print $2}'`
exec 2>/dev/null
var1=`qm guest cmd ${vmid} get-osinfo | jq -r '.["pretty-name"]'`
var2=`cat cached | grep ${vmid} | awk -F':' '{print $2}'`
var3=`cat /etc/pve/qemu-server/${vmid}.conf | grep ostype | awk '{print $2}'`
ostype=$var1
if [[ -z "$ostype" || "$ostype" == *"is not running"* || "$ostype" == *"QEMU guest agent configured"* ]]; then
ostype=$var2
if [[ -z "$ostype" ]]; then
ostype="$var3 TOOLS!"
fi
else
sed -i "s|$vmid:.*|$vmid:$var1|" $CACHE
fi
if [[ -z "$var2" ]]; then
grep $vmid $CACHE > /dev/null
if [ "$?" == "1" ]; then
echo "$vmid:" >> $CACHE
fi
fi
if [ "$i" == "0" ] if [ "$i" == "0" ]
then then
CMD=".[$i] += {\"os\":\"$ostype\"}" CMD=".[$i] += {\"os\":\"$ostype\"}"
else else
CMD=$CMD" | .[$i] += {\"os\":\"$ostype\"}" CMD=$CMD" | .[$i] += {\"os\":\"$ostype\"}"
fi fi
#echo "$name is $vmid" #echo "$name is $vmid # $var1 ## $var2 ### $var3" ; echo "---"
done done
jqcmd=(jq "$CMD") jqcmd=(jq "$CMD")