--- /dev/null
+#!/bin/sh
+#
+# Gnucomo hardware reporting script
+#
+# Create a parameter report with 4 values:
+
+
+### FUNCTIONS ####
+HP_PROLIANT()
+#Works on G5, G6, G7
+{
+ DMIBIOSVER=`dmidecode -s bios-version`
+ DMIMAN=`dmidecode -s system-manufacturer`
+ DMIPROD=`dmidecode -s system-product-name`
+ DMISER=`dmidecode -s system-serial-number`
+ USPREL=`cat /etc/issue | grep USP | awk '{print $1 " " $2}'`
+ USPKERN=`uname -r`
+
+ echo " <gcmt:parameter name='System_info'>"
+ echo " <gcmt:description>System information</gcmt:description>"
+ echo " <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+ echo " <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+ echo " <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+ echo " <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+ echo " <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+ echo " <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+#
+# The default Linux way without assuming specific hardware.
+#
+LINUX()
+{
+ DMIBIOSVER=`dmidecode -s bios-version`
+ DMIMAN=`dmidecode -s system-manufacturer`
+ DMIPROD=`dmidecode -s system-product-name`
+ DMISER=`dmidecode -s system-serial-number`
+ USPREL=`cat /etc/issue | head -1`
+ USPKERN=`uname -r`
+
+ echo " <gcmt:parameter name='System_info'>"
+ echo " <gcmt:description>System information</gcmt:description>"
+ echo " <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+ echo " <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+ echo " <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+ echo " <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+ echo " <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+ echo " <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+
+SUN_SPARC_ENTERPRISE_T5120()
+{
+ DMIBIOSVER=`prtpicl -c chassis -v | grep FW-version | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+ DMIMAN=`prtpicl -c chassis -v | grep :MfgName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+ DMIPROD=`prtpicl -c chassis -v | grep :Description | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+ DMISER=`prtpicl -c chassis -v | grep :SerialNumber | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+ USPREL=`uname -sr`
+ USPKERN=`uname -v`
+
+ echo " <gcmt:parameter name='System_info'>"
+ echo " <gcmt:description>System information</gcmt:description>"
+ echo " <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+ echo " <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+ echo " <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+ echo " <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+ echo " <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+ echo " <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+SUN_SPARC_ENTERPRISE_T5220()
+{
+ DMIBIOSVER=`prtpicl -c chassis -v | grep FW-version | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+ DMIMAN=`prtpicl -c chassis -v | grep :MfgName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+ DMIPROD=`prtpicl -c chassis -v | grep :ModelName | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+ DMISER=`prtpicl -c chassis -v | grep :SerialNumber | awk '{ for (i=2; i<=NF; i++) printf("%s ",$i)}'`
+ USPREL=`uname -sr`
+ USPKERN=`uname -v`
+
+ echo " <gcmt:parameter name='System_info'>"
+ echo " <gcmt:description>System information</gcmt:description>"
+ echo " <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+ echo " <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+ echo " <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+ echo " <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+ echo " <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+ echo " <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+SUN_FIRE_V()
+{
+ DMIBIOSVER="N/A"
+ DMIMAN="Sun Microsystems, Inc. "
+ DMIPROD=`uname -i | cut -d"," -f2`
+ DMISER=`prtpicl -c chassis-serial-number -v | grep SerialNumber | awk '{print $2}'`
+ USPREL=`uname -sr`
+ USPKERN=`uname -v`
+
+ echo " <gcmt:parameter name='System_info'>"
+ echo " <gcmt:description>System information</gcmt:description>"
+ echo " <gcmt:property name='system-manufacturer'>$DMIMAN</gcmt:property>"
+ echo " <gcmt:property name='system-product-name'>$DMIPROD</gcmt:property>"
+ echo " <gcmt:property name='system-serial-number'>$DMISER</gcmt:property>"
+ echo " <gcmt:property name='bios-version'>$DMIBIOSVER</gcmt:property>"
+ echo " <gcmt:property name='kernel'>$USPKERN</gcmt:property>"
+ echo " <gcmt:property name='usp-release'>$USPREL</gcmt:property>"
+}
+
+PATH=$PATH:/usr/sbin
+
+HOST=`hostname`
+TIME=`date`
+OS=`uname`
+
+echo "<?xml version='1.0'?>"
+echo "<gcmt:message xmlns:gcmt='http://gnucomo.org/transport/'>"
+echo " <gcmt:header>"
+echo " <gcmt:messagetype>XML</gcmt:messagetype>"
+echo " <gcmt:hostname>$HOST</gcmt:hostname>"
+echo " <gcmt:time>$TIME</gcmt:time>"
+echo " </gcmt:header>"
+echo " <gcmt:data>"
+
+echo " <gcmt:parameters gcmt:class='hardware'>"
+
+# insert correct system info here:
+
+case $OS in
+ "Linux")
+ #starting linux detection procedure
+ PROD=`dmidecode -s system-product-name`
+ case $PROD in
+ "ProLiant DL380"*)
+ HP_PROLIANT
+ ;;
+ "hp workstation xw8200")
+ HP_PROLIANT
+ ;;
+ *)
+ LINUX
+ ;;
+ esac
+ ;;
+ "SunOS")
+ #starting sun detection procedure
+ PROD=`uname -i`
+ case $PROD in
+ "SUNW,SPARC-Enterprise-T5220")
+ SUN_SPARC_ENTERPRISE_T5220
+ ;;
+ "SUNW,SPARC-Enterprise-T5120")
+ SUN_SPARC_ENTERPRISE_T5120
+ ;;
+ "SUNW,Sun-Fire-V245")
+ SUN_FIRE_V
+ ;;
+ esac
+ ;;
+esac
+
+
+
+echo " </gcmt:parameter>"
+
+echo " </gcmt:parameters>"
+echo " </gcmt:data>"
+echo "</gcmt:message>"
+
PATH=$PATH:/usr/local/bin
GNUCOMO_ADDRESS=gnucomo@`dnsdomainname`
+OS=`uname`
-if PACKAGER=`which rpm`
-then
- PACKAGER='rpm -qa'
-else
- if PACKAGER=`which dpkg`
+if test $OS = "Linux"; then
+
+ if PACKAGER=`which rpm`
+ then
+ PACKAGER='rpm -qa'
+ elif PACKAGER=`which dpkg`
then
PACKAGER='package-debian'
fi
-fi
-if [ "x$PACKAGER" = x ]
-then
- echo "Packages not available"
+ if [ "x$PACKAGER" == x ]
+ then
+ echo "Packages not available"
+ fi
+
+ $PACKAGER | mail -s 'Gnucomo package report' $GNUCOMO_ADDRESS
+ sleep 10
+ df -lPk -x tmpfs | mail -s 'Gnucomo filesystem report' $GNUCOMO_ADDRESS
+ sleep 10
+ df -lPi -x tmpfs | mail -s 'Gnucomo filesystem report' $GNUCOMO_ADDRESS
+
+elif test $OS = "SunOS"; then
+
+ PACKAGER='package-solaris'
+
+ $PACKAGER | mail -s 'Gnucomo package report' $GNUCOMO_ADDRESS
+ sleep 10
+ df -lk -F ufs | mail -s 'Gnucomo filesystem report' $GNUCOMO_ADDRESS
+
fi
-$PACKAGER | mail -s 'Gnucomo package report' $GNUCOMO_ADDRESS
-sleep 10
-df -lPk -x tmpfs | mail -s 'Gnucomo filesystem report' $GNUCOMO_ADDRESS
-sleep 10
-df -lPi -x tmpfs | mail -s 'Gnucomo filesystem report' $GNUCOMO_ADDRESS
sleep 10
systemload | mail -s 'Gnucomo load report' $GNUCOMO_ADDRESS
+sleep 10
+gnucomo_hardware | mail -s 'Gnuicomo hardware report' $GNUCOMO_ADDRESS