Mt Xia: Technical Consulting Group

Business Continuity / Disaster Recovery / High Availability
Data Center Automation / Audit Response / Audit Compliance

-
Current Location
-

css
  GlobalSysAdmin
    Power5

-

digg Digg this page
del.icio.us Post to del.icio.us
Slashdot Slashdot it!


Business Web Site Hosting
$3.99 / month includes Tools,
Shopping Cart, Site Builder

www.siteox.com

FREE Domain Registration
included with Web Site Hosting
Tools, Social Networking, Blog

www.siteox.com


#!/usr/bin/ksh93
################################################################
function dst_header {
  FD="${1:?# ERROR: file descriptor number not specified}"
  DC="${2:?# ERROR: data center identifier not specified}"
  print -u ${FD} -- "<!-- Begin \"dst${DC}Updates.content.shtml\" -->"
  print -u ${FD} -- "\n<P><H2>Daylight Savings Time (DST) System Compliance</H2></P>"
  print -u ${FD} -- "\n<P><TABLE Border=\"1\">"
  print -u ${FD} -- "<P><TR>"
  print -u ${FD} -- "<TH Bgcolor=\"lightgrey\"><A Href=\"dst${DC}byhostname.shtml\">Host Name</A></TH>"
  print -u ${FD} -- "<TH Bgcolor=\"lightgrey\"><A Href=\"dst${DC}byoslevel.shtml\">OS Level</A></TH>"
  print -u ${FD} -- "<TH Bgcolor=\"lightgrey\"><A Href=\"dst${DC}byfileset.shtml\">Fileset</A></TH>"
  print -u ${FD} -- "<TH Bgcolor=\"lightgrey\"><A Href=\"dst${DC}bycomply.shtml\">Compliance</A></TH>"
  print -u ${FD} -- "<TH Bgcolor=\"lightgrey\">Description</TH>"
  print -u ${FD} -- "</TR></P>"
}
################################################################
function dst_footer {
  FD="${1:?# ERROR: file descriptor number not specified}"
  DC="${2:?# ERROR: data center identifier not specified}"
  DATESTAMP="$( date )"

  print -u ${FD} -- "</TABLE></P>"
  print -u ${FD} -- "<P><I>${DATESTAMP}</I></P>"
  print -u ${FD} -- "\n<!-- End \"dst${DC}Updates.content.shtml\" -->"
}
################################################################

typeset -L3 DC="${1:?# ERROR: 3 character lowercase datacenter identifier must be specified (mdc|ddc)}"
if [[ "${DC}" != @(mdc|ddc) ]]
then
  print -u 2 -- "# ERROR: invalid datacenter identifier \"${DC}\": valid identifiers are mdc|ddc"
  exit 1
fi

cat << ENDCAT > /tmp/cat${$}.out
5.3	bos.rte.lib	IY75211
5.3	bos.adt.prof	IY75211
5.2	bos.rte.lib	IY75213
5.2	bos.adt.prof	IY75213
5.1	bos.rte.lib	IY75214
5.1	bos.adt.prof	IY75214
5.3	bos.rte.date	IY91662
5.2	bos.rte.date	IY91985
5.3	Java14.sdk	IY84053
5.3	Java14_64.sdk	IY84054
5.2	Java14.sdk	IY84053
5.2	Java14_64.sdk	IY84054
5.1	Java14.sdk	IY84053
5.1	Java14_64.sdk	IY84054
5.3	Java13.sdk	IY85293
5.3	Java13_64.sdk	IY85294
5.2	Java13.sdk	IY85293
5.2	Java13_64.sdk	IY85294
5.3	Java13.sdk	IY85293
5.3	Java13_64.sdk	IY85294
5.2	Java13.sdk	IY85293
5.2	Java13_64.sdk	IY85294
5.1	Java13.sdk	IY85293
5.1	Java13_64.sdk	IY85294
5.3	Java5.sdk	IY82213
5.3	Java5_64.sdk	IY82254
5.2	Java5.sdk	IY82213
5.2	Java5_64.sdk	IY82254
5.1	Java5.sdk	IY82213
5.1	Java5_64.sdk	IY82254
4.3	Java14.sdk	IY84053
4.3	Java14_64.sdk	IY84054
4.3	Java130.rte.bin	IY85293
4.3	Java130.rte.lib	IY85294
4.3	Java5.sdk	IY82213
4.3	Java5_64.sdk	IY82254
5.3	sysmgt.websm.framework	IY83394
5.2	sysmgt.websm.framework	IY86260
ENDCAT

exec 3>/tmp/dstscript${$}.out
FD="3"

####  amms.list is copied from NIMserver:/root/amms.list to users home directory
cut -d"|" -f2 ./amms.list |
while read -- CNAME
do
  OS=$( ssh -x root@${CNAME} 'oslevel' )

  sort /tmp/cat${$}.out |
  while read OSLEVEL FILESET APARNUM
  do
    print -u 2 -- "# ${CNAME} ${OS} ${FILESET} ${APARNUM}"
    APAR=""
    if [[ "_${OS}" == _${OSLEVEL}* ]]
    then
      APAR=$( ssh -x root@${CNAME} "if lslpp -l ${FILESET} 1>&2; then instfix -ik ${APARNUM} 2>&1; fi" )
    fi
    if [[ "_${APAR}" != "_" ]]
    then
      APAR="${APAR//[!A-Za-z0-9. -]/}"
      APAR=${APAR##*([ ])}

      COMPLY="<STRONG><FONT Color=\"red\">Non-Compliant</FONT></STRONG>"
      [[ "_${APAR}" == _"All filesets"* ]] && COMPLY="Compliant"

      print -u ${FD} -n -- "<P><TR>"
      print -u ${FD} -n -- "<TD>${CNAME}</TD><!-- | -->"
      print -u ${FD} -n -- "<TD>${OS}</TD><!-- | -->"
      print -u ${FD} -n -- "<TD>${FILESET}</TD><!-- | -->"
      print -u ${FD} -n -- "<TD>${COMPLY}</TD><!-- | -->"
      print -u ${FD} -n -- "<TD>${APAR}</TD><!-- | -->"
      print -u ${FD} -- "</TR></P>"

    fi

  done
  
done

exec 3>&-

#### create HTML content file sorted by hostname
exec 3>/tmp/dst${DC}byhostname.content.shtml
  dst_header 3 ${DC}
    sort -f -t '|' +0 +2 /tmp/dstscript${$}.out >&3
  dst_footer 3 ${DC}
exec 3>&-

#### create HTML content file sorted by fileset name
exec 3>/tmp/dst${DC}byfileset.content.shtml
  dst_header 3 ${DC}
    sort -f -t '|' +2 +0 /tmp/dstscript${$}.out >&3
  dst_footer 3 ${DC}
exec 3>&-

#### create HTML content file sorted by whether it is DST compliant
exec 3>/tmp/dst${DC}bycomply.content.shtml
  dst_header 3 ${DC}
    sort -f -t '|' +3 +2 +0 /tmp/dstscript${$}.out >&3
  dst_footer 3 ${DC}
exec 3>&-

#### create HTML content file sorted by oslevel
exec 3>/tmp/dst${DC}byoslevel.content.shtml
  dst_header 3 ${DC}
    sort -f -t '|' +1 +0 /tmp/dstscript${$}.out >&3
  dst_footer 3 ${DC}
exec 3>&-

rm -f /tmp/cat${$}.out
rm -f /tmp/dstscript${$}.out

-
DST Script
-
 

DST Updates at MDC
DST Updates at DDC
DST Updates at MDC
DST Updates at DDC
DST Updates at MDC
DST Updates at DDC


FREE Domain Registration
included with Web Site Hosting
Tools, Social Networking, Blog

www.siteox.com

Business Web Site Hosting
$3.99 / month includes Tools,
Shopping Cart, Site Builder

www.siteox.com