#!/bin/ksh
#
# send_inventory HP-UX
# sendet einige HW-Infos in der Form
#
# SCHLUESSEL;Wert[;weitere Werte]
#
# NET;<HW-Addr>;<IP-Addr/Len>[;<IP-Addr/Len>...]
# MEM;<Memory in MByte>
# CPUS;<CPU Sockets>;<CPU Model>
# CPUC;<CPU Cores>;<MHz>;<kB Cach>;<HT Cores>
# HOSTID;<hostid>
# BS;<BS Name>;<BS Version>;<Patchlevel>
# FIREWALL;on|off
#######################################################
#
if [ $# -lt 2 ]
 then
  set `date '+%Y-%m-%d %H:%M:00 %z'`
fi
#
DT="$1 $2"
TZ="$3"
#
DAT=/tmp/Inventory-`hostname`.csv
#
export LANG=C
#
typeset -i2 b1 b2
lanscan | fgrep "ETHER" | while read p a c h n i r
 do
  M=`echo $a | sed 's/0x\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/'`
  if ifconfig $n 2>/dev/null | tail -1 | read i a n m d
   then
    m1=`echo $m | sed 's/\(....\)..../\1/'`
    m2=`echo $m | sed 's/....\(....\)/\1/'`
    b1=$(( 16#$m1 ))
    b2=$(( 16#$m2 ))
    b=$((`echo $b1$b2\\c | sed 's/[^1]//g' | wc -c` - 1))
    echo "NET;$M;$a/$b"
  else
    echo "NET;$M"
  fi
done >$DAT
#
echo "MEM;`/usr/local/ulsclient/mem_util | awk '$1 == "physical" {print $2}'`" >>$DAT
#
C=`ioscan -k | grep processor | wc -l`
t=`echo "itick_per_usec/D" | adb /stand/vmunix /dev/mem | tail -1 | awk '{print $2}'`
echo "CPUS;$C;$m" >>$DAT
echo "CPUC;$C;$t" >>$DAT
#
echo "BS;`uname -sr | sed 's/ /;/'`" >>$DAT
#
#
/usr/local/bin/send_server_doku Inventory "Short System Status for ServerDB.
NET;<HW-Addr>;<IP-Addr/Len>[;<IP-Addr/Len>...]
MEM;<Memory in MByte>
CPUS;<CPU Sockets>;<CPU Model>
CPUC;<CPU Cores>;<MHz>;<kB Cach>;<HT Cores>
HOSTID;<hostid>
BS;<BS Name>;<BS Version>;<Patchlevel>
FIREWALL;on|off" $DT $DAT
