ADSM-L

[ADSM-L] dsmaccnt help script ...

2007-03-22 11:45:26
Subject: [ADSM-L] dsmaccnt help script ...
From: goc <gooooc AT GMAIL DOT COM>
To: ADSM-L AT VM.MARIST DOT EDU
Date: Thu, 22 Mar 2007 16:44:24 +0100
hi all,
maybe will someone find this script useful, or at least anyone who
uses this http://people.bu.edu/rbs/adsm-report

the script automaticaly handles dsmaccnt.log and extracts stats for
last month with adsm-report.pl script and some other minor yada yada
...

greetz.

----------------------

#!/bin/sh
#set -x
#
###############################################################################
# generating statistics, bla bla ...
# working direcotory is : /usr/local/bin/adsm-report
# info : http://people.bu.edu/rbs/adsm-report
#
# RELATED : crontab entry which kicks of every 1st of the month for
previous month
#               crontab: 0 1 1 * * /usr/local/bin/adsm-report/adsm-report.sh >>
/usr/local/adsm-report/adsm-report.log 2>&1 # every 1st of the month
at 1AM o'clock make ADSM-REPORT for previous month
# TODO :         finding out last months name - DONE
#               command line variable input possibility
#               customizing report outputname in perl script ...
#               bunch of other stuff
#               yada yada yada
###############################################################################
#
###############################################################################
# ENV
###############################################################################
VER="v1.3"
WORK_DIR="/usr/local/bin/adsm-report"
REP_SCRIPT="adsm-report.pl"
DATE_DET="`date +\"%d%m%Y%H%M\"`"
DATE="`date +\"%d%m%Y\"`"
#CUR_MONTH="`date +\"%B\"`" # uncomment if doing current month
#CUR_YEAR="`date +\"%Y\"`"  # uncomment if doing current month
#EMAIL_ME="me AT company DOT com"     # CUSTOMIZE IT !
MAILEXE="mailx -s"
#MAIL_SUBJECT="ADSM-REPORT stats for $CUR_MONTH|$CUR_YEAR"    # uncomment
if doing current month
#REP_FILE_NAME="ADSM-REP-$CUR_MONTH$CUR_YEAR" # uncomment if doing current month
HOST="`uname -n`"
BASE="`basename $0`"
DSMSERV_DIR="/usr/tivoli/tsm/server/bin"
ACCNT_LOG="dsmaccnt.log"
LWN="dsmaccnt.log.WORK"
DEF_OUTPUT="adsm-report-file"
FY="fromyear"
FM="frommonth"
TY="toyear"
TM="tomonth"
GZIP="/usr/bin/gzip -f" # forced overwrite gzipping
SLEEP="sleep 2"
CP="cp"
MV="mv"
PRI="print"
GZ_EXT="gz"
GZ_REDIR="-c"
TXT_EXT="txt"
UUENC="uuencode"
HR="#####################################################"
HR2="-----------------------------------------------------"
CD="cd"
###############################################################################
# ENV END
###############################################################################
#
###############################################################################
# FUNCTIONS
###############################################################################
function last_month {
# this function finds out last months name and if it's December return
last year also as variable
${PRI} "Finding previous month name and year, if Dec return current
year as year - 1 ;-) ........."
if [ `date +'%m'` -eq 1 ]; then
        MONTH="Dec"
        YEAR=`expr \`date +'%Y' \` - 1`
        ${PRI} ${HR2}
        ${SLEEP}
        ${PRI} "Last month is ${MONTH}, year is ${YEAR}."
else
        MONTH=`echo "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"|awk -v
x=\`expr \\\`date +'%m' \\\` - 1\` '{print $x}'`
        YEAR=`date +'%Y'`
        ${PRI} ${HR2}
        ${SLEEP}
        ${PRI} "Last month is ${MONTH}, year is ${YEAR}."
fi
}
###############################################################################
function copy {
# copy account log to work dir - WARNING: it can be BIG
${PRI} "Copying account log to ${WORK_DIR} ........."
#${PRI} "${CP} ${DSMSERV_DIR}/${ACCNT_LOG} ${WORK_DIR}/${ACCNT_LOG}"
${PRI} "${CP} ${DSMSERV_DIR}/${ACCNT_LOG} ${WORK_DIR}/${LWN}"
${PRI} ${HR2}
${SLEEP}
${CP} ${DSMSERV_DIR}/${ACCNT_LOG} ${WORK_DIR}/${LWN}
${PRI} "Finished copy."
${SLEEP}
}
###############################################################################
function rename {
# renaming account log into work wersion ... ya i know i could do that
in previous function during copy but. no :-) ... actually this func is
not in use right now
${PRI} "Renaming account log into ${LWN} as working version name ........."
${PRI} "${MV} ${WORK_DIR}/${ACCNT_LOG} ${WORK_DIR}/${LWN}"
${PRI} ${HR2}
${SLEEP}
${MV} ${WORK_DIR}/${ACCNT_LOG} ${WORK_DIR}/${LWN}
${PRI} "Renaming finished."
${SLEEP}
}
###############################################################################
function start_report {
# starting report script
${PRI} "Starting report script ........."
#${PRI} "${WORK_DIR}/${REP_SCRIPT} ${FY} ${CUR_YEAR} ${FM}
${CUR_MONTH} ${TY} ${CUR_YEAR} ${TM} ${CUR_MONTH} ${LWN}"   # uncomment
if doing current month
${PRI} "${WORK_DIR}/${REP_SCRIPT} ${FY} ${YEAR} ${FM} ${MONTH} ${TY}
${YEAR} ${TM} ${MONTH} ${LWN}"
${PRI} ${HR2}
${SLEEP}
# for current month and year decomment line below, for previous month
look 2 lines below LOL
#${WORK_DIR}/${REP_SCRIPT} ${FY} ${CUR_YEAR} ${FM} ${CUR_MONTH} ${TY}
${CUR_YEAR} ${TM} ${CUR_MONTH} ${LWN}    # uncomment if doing current
month
# working as designed with year/month function output as default :
MAKE REPORT FOR PREVIOUS MONTH. period. :-)
${WORK_DIR}/${REP_SCRIPT} ${FY} ${YEAR} ${FM} ${MONTH} ${TY} ${YEAR}
${TM} ${MONTH} ${LWN}
${PRI} ${HR2}
${PRI} "Report script finished."
${SLEEP}
}
###############################################################################
function compress_log {
# gzipping of account log - WARNING: it can be BIG
${PRI} "Compressing account log (space saving) ........."
#${PRI} "${GZIP} ${WORK_DIR}/${LWN}"
${PRI} "${GZIP} ${GZ_REDIR} ${WORK_DIR}/${LWN} >
${WORK_DIR}/${LWN}.${DATE}.${GZ_EXT}"
${PRI} ${HR2}
${SLEEP}
#${GZIP} ${WORK_DIR}/${LWN} # compressing account log as is, every
time it rewrites the already existing one - WARNING: mutualy exclusive
with line BELOW
${GZIP} ${GZ_REDIR} ${WORK_DIR}/${LWN} >
${WORK_DIR}/${LWN}.${DATE}.${GZ_EXT} # compressing account log with
timestamp for archival purposes, every month new one - WARNING:
mutualy exclusive with line ABOVE
${PRI} "Compressing finished."
${SLEEP}
}
###############################################################################
function rename_output {
# renaming output file into new name
${PRI} "Renaming output file (plus timestamp) ........."
${PRI} "${MV} ${WORK_DIR}/${DEF_OUTPUT} ${WORK_DIR}/${DEF_OUTPUT}.${DATE}"
${PRI} ${HR2}
${SLEEP}
${MV} ${WORK_DIR}/${DEF_OUTPUT} ${WORK_DIR}/${DEF_OUTPUT}.${DATE}
${PRI} "Renaming finished."
${SLEEP}
}
###############################################################################
function gzippit {
# gzipping report - if needed , currently disabled
${PRI} "Compressing report ........."
${PRI} "${GZIP} ${WORK_DIR}/${DEF_OUTPUT}.${DATE}.${GZ_EXT}"
${PRI} ${HR2}
${SLEEP}
${GZIP} ${WORK_DIR}/${DEF_OUTPUT}.${DATE}
${PRI} "Compressing of report finished."
${SLEEP}
}
###############################################################################
function send_mail {
# sending mail with gzipped report
${PRI} "Encoding and sending of report ........."
MAIL_SUBJECT="ADSM-REPORT stats for ${MONTH}|${YEAR}" # used when automated
REP_FILE_NAME="ADSM-REP-$MONTH|$YEAR" # used when automated
${PRI} "${UUENC} ${WORK_DIR}/${DEF_OUTPUT}.${DATE}
${WORK_DIR}/${DEF_OUTPUT}.${DATE}.${TXT_EXT} | ${MAILEXE}
"${MAIL_SUBJECT}" "${EMAIL_ME}""       # just printing out command line
${PRI} ${HR2}
${SLEEP}
#${UUENC} ${WORK_DIR}/${DEF_OUTPUT}.${DATE}
${WORK_DIR}/${DEF_OUTPUT}.${DATE}.${TXT_EXT} | ${MAILEXE}
"${MAIL_SUBJECT}" "${EMAIL_ME}"      # uncomment if doing current month
${UUENC} ${DEF_OUTPUT}.${DATE} ${REP_FILE_NAME}.${DATE}.${TXT_EXT} |
${MAILEXE} "${MAIL_SUBJECT}" "${EMAIL_ME}"
${PRI} "Sending of report finished."
${SLEEP}
}
###############################################################################
# FUNCTIONS END
###############################################################################
#
###############################################################################
# MAIN PART
###############################################################################
#
${PRI} ${HR}
${PRI} "${VER} - Start >>>"
last_month
${PRI}
${PRI} ${HR}
copy
${PRI}
${PRI} ${HR}
#rename
#${PRI}
#${PRI} ${HR}
start_report
${PRI}
${PRI} ${HR}
compress_log
${PRI}
${PRI} ${HR}
rename_output
${PRI}
${PRI} ${HR}
#gzippit
#${PRI}
#${PRI} ${HR}
send_mail
${PRI}
${PRI} ${HR}
${PRI} "<<< End"
#
###############################################################################
# MAIN PART END
###############################################################################
#
# SCRIPT END

<Prev in Thread] Current Thread [Next in Thread>
  • [ADSM-L] dsmaccnt help script ..., goc <=