Mt Xia: Technical Consulting Group
Business Continuity / Disaster Recovery / High Availability Data Center Automation / Audit Response / Audit Compliance
#!/bin/bash ############################################################## # Program: gennmon.sh # # Description: Generate the "cricket" directories and files # to describe the "nmon" data on a remote machine. # # Author: Dana French (dfrench@mtxia.com) # Mt Xia # # Date: 06/10/2003 # ############################################################## function usagemsg { echo "" echo "Usage: ${0} [-v] [-y] [-u ruser] [-m a|s|l] [-d destDir] server" echo "" echo " Where '-v' = Turn on verbose mode (default:off)" echo " '-y' = Automatically answer \"yes\" to any questions asked (default:ask)" echo " '-u ruser' = Remote user name to use for rsh commands (default:${RUSER})" echo " '-d destDir' = Specify the destination directory in which " echo " to create the filesystem information (default:${DATASETID})" echo " '-m MachType' = Machine type of remote machine. Valid Types are:" echo " a = AIX" echo " s = Sun" echo " l = Linux (default)" echo "" echo " server = The name of a remote server from which to retrieve" echo " file system information (required parameter)" echo "" } ################################################################ VERBOSE="0" DESTDIR="." DFFLAGS="-h" MACHTYPE="" OSNAME="" AUTOYES="0" RUSER="${RUSER:=xmon}" while getopts "m:d:u:yv" OPTION do case "${OPTION}" in 'm') MACHTYPE="${OPTARG}" if [[ "_${MACHTYPE}" = _[Aa]* ]] then OSNAME="AIX" DFFLAGS="-I" fi [[ "_${MACHTYPE}" = _[Ss]* ]] && OSNAME="Solaris" [[ "_${MACHTYPE}" = _[Ll]* ]] && OSNAME="Linux" ;; 'y') AUTOYES="1";; 'd') DESTDIR="${OPTARG}";; 'u') RUSER="${OPTARG}";; 'v') VERBOSE="1";; '?') usagemsg && exit 1 ;; esac done shift $(( ${OPTIND} - 1 )) SERVER="${1:?ERROR: run \"${0} -?\" for help and usage}" shift (( VERBOSE == 1 )) && echo "#### Beginning ${0} for server ${SERVER} ####" if [[ ! -d "${DESTDIR}/nmon/${DATASETID}" ]] then (( VERBOSE == 1 )) && echo "Generating destination directory ${DESTDIR}/nmon/${DATASETID}" echo "${DESTDIR}/nmon/${DATASETID} does not exist. Create it (y/n)?" if (( AUTOYES == 1 )) then ANS="y" (( VERBOSE == 1 )) && echo "${ANS}" else read ANS JUNK fi if [[ "_${ANS}" = _[Yy]* ]] then (( VERBOSE == 1 )) && echo "Attempting to create destination directory ${DESTDIR}/nmon/${DATASETID}" if mkdir -p "${DESTDIR}/nmon/${DATASETID}" then (( VERBOSE == 1 )) && echo "${DESTDIR}/nmon/${DATASETID} successfully created" else echo "ERROR: Unable to create directory \"${DESTDIR}/nmon/${DATASETID}\"" >&2 exit 2 fi else echo "ERROR: Unable to continue with specified directory \"${DESTDIR}/nmon/${DATASETID}\"" >&2 exit 3 fi else (( VERBOSE == 1 )) && echo "Destination directory \"${DESTDIR}/nmon/${DATASETID}\" already exists" fi DEFAULTSFILE="${DESTDIR}/nmon/Defaults" TARGETFILE="${DESTDIR}/nmon/target" # # Generate Defaults File # (( VERBOSE == 1 )) && echo "Generating \"${DEFAULTSFILE}\" file" echo " target --default-- directory-desc = \"nmon data\" target-type = %auto-target-name% server = %auto-target-name% df = %auto-base%/../cricket/util/nmon.sh ##### Datasources ######### datasource --default-- rrd-ds-type = GAUGE rrd-min = 0 rrd-max = 100 graph --default-- draw-as = LINE2 units = \"\" y-min = 0 y-max = 100 y-axis = \"Description of nmon data\" " > "${DEFAULTSFILE}" # # Generate target File # (( VERBOSE == 1 )) && echo "Generating \"${TARGETFILE}\" file" echo "target --default-- server = ${SERVER} short-desc = \"Server\"" > "${TARGETFILE}" /usr/bin/rsh -l ${RUSER} $SERVER "sed -e '1,/^ZZZZ,/ !d' /tmp/*.nmon | cut -d',' -f1 | sort -n | uniq | egrep -v '^AAA|^BBB|^ZZZ'" | while read DATASETID do echo "DATASETID=${DATASETID}" >&2 DATASRC="${DATASETID}" (( VERBOSE == 1 )) && echo '' && echo "datasource server${DATASRC}" echo '' >> "${DEFAULTSFILE}" echo "datasource server${DATASRC}" >> "${DEFAULTSFILE}" echo " ds-source = \"exec:0:%df% %server% %partitions%\"" >> "${DEFAULTSFILE}" echo "" >> "${DEFAULTSFILE}" echo "targetType server${DATASRC}" >> "${DEFAULTSFILE}" echo " ds = \"server${DATASRC}\"" >> "${DEFAULTSFILE}" (( VERBOSE == 1 )) && echo "graph server${DATASRC}" echo "" >> "${DEFAULTSFILE}" echo "graph server${DATASRC}" >> "${DEFAULTSFILE}" echo " draw-as = AREA" >> "${DEFAULTSFILE}" echo " legend = \"${DATASETID} Data Set\"" >> "${DEFAULTSFILE}" TARGNAME="${DATASETID}" SHORTDESC="${DATASETID}" (( VERBOSE == 1 )) && echo "target ${TARGNAME}" echo '' >> "${TARGETFILE}" echo "target ${TARGNAME}" >> "${TARGETFILE}" echo " target-type = server${TARGNAME}" >> "${TARGETFILE}" echo " short-desc = \"${SHORTDESC/#\//}\"" >> "${TARGETFILE}" echo " partitions = \"${DATASETID}\"" >> "${TARGETFILE}" done echo "" >> "${DEFAULTSFILE}" echo "html short-desc \"${DATASETID}\"" >> "${DEFAULTSFILE}" (( VERBOSE == 1 )) && echo "#### Ending ${0} for server ${SERVER} ####" exit 0