From ac914280b1d58b168af0f4672baded3ff7e2fd44 Mon Sep 17 00:00:00 2001 From: Arjen Baart Date: Tue, 7 Feb 2012 15:25:37 +0100 Subject: [PATCH] Added Solaris support in Gnucomo report scripts. --- scripts/gnucomo_hardware | 168 +++++++++++++++++++++++++++++++++++++++++++++++ scripts/gnucomo_report | 42 ++++++++---- scripts/systemload | 18 ++++- 3 files changed, 211 insertions(+), 17 deletions(-) create mode 100755 scripts/gnucomo_hardware diff --git a/scripts/gnucomo_hardware b/scripts/gnucomo_hardware new file mode 100755 index 0000000..2ec1492 --- /dev/null +++ b/scripts/gnucomo_hardware @@ -0,0 +1,168 @@ +#!/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 " " + echo " System information" + echo " $DMIMAN" + echo " $DMIPROD" + echo " $DMISER" + echo " $DMIBIOSVER" + echo " $USPKERN" + echo " $USPREL" +} + +# +# 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 " " + echo " System information" + echo " $DMIMAN" + echo " $DMIPROD" + echo " $DMISER" + echo " $DMIBIOSVER" + echo " $USPKERN" + echo " $USPREL" +} + + +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 " " + echo " System information" + echo " $DMIMAN" + echo " $DMIPROD" + echo " $DMISER" + echo " $DMIBIOSVER" + echo " $USPKERN" + echo " $USPREL" +} + +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 " " + echo " System information" + echo " $DMIMAN" + echo " $DMIPROD" + echo " $DMISER" + echo " $DMIBIOSVER" + echo " $USPKERN" + echo " $USPREL" +} + +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 " " + echo " System information" + echo " $DMIMAN" + echo " $DMIPROD" + echo " $DMISER" + echo " $DMIBIOSVER" + echo " $USPKERN" + echo " $USPREL" +} + +PATH=$PATH:/usr/sbin + +HOST=`hostname` +TIME=`date` +OS=`uname` + +echo "" +echo "" +echo " " +echo " XML" +echo " $HOST" +echo " $TIME" +echo " " +echo " " + +echo " " + +# 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 " " + +echo " " +echo " " +echo "" + diff --git a/scripts/gnucomo_report b/scripts/gnucomo_report index 3dcf2cc..bfc1ee0 100755 --- a/scripts/gnucomo_report +++ b/scripts/gnucomo_report @@ -7,26 +7,40 @@ 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 diff --git a/scripts/systemload b/scripts/systemload index 8363466..dba2ca4 100755 --- a/scripts/systemload +++ b/scripts/systemload @@ -7,7 +7,13 @@ # -HOST=`hostname --fqdn` +OS=`uname` +if test $OS = 'Linux' ; then + HOST=`hostname --fqdn` +elif test $OS = 'SunOS' ; then + HOST=`hostname` +fi + TIME=`date` echo "" @@ -21,8 +27,14 @@ echo " " echo " " -PROCESSES=`ps ax|wc -l|awk ' {print $1}'` -LOADAV=` uptime|awk ' { print $11 }' | tr -d ,` +PROCESSES=`ps -e|wc -l|awk ' {print $1}'` +if test $OS = 'Linux' ; then + LOADAV=` uptime|awk ' { print $11 }' | tr -d ,` +elif test $OS = 'SunOS' ; then + LC_NUMERIC=POSIX + export LC_NUMERIC + LOADAV=` uptime|awk ' { print $11 }' | tr -d ,` +fi echo "" echo " System processing load" -- 2.11.0