Added an Option to mail-back LTP reports, by Subrata Modak <subrata@linux.vnet.ibm.com>
diff --git a/runltp b/runltp
index cb33bfa..2f3ab57 100755
--- a/runltp
+++ b/runltp
@@ -107,6 +107,7 @@
-N -n [ -o OUTPUTFILE ] -p -q [ -r LTPROOT ] [ -s PATTERN ] [ -t DURATION ]
-v [ -w CMDFILEADDR ] [ -x INSTANCES ]
+ -a EMAIL_TO EMAIL all your Reports to this E-mail Address
-c NUM_PROCS Run LTP under additional background CPU load
[NUM_PROCS = no. of processes creating the CPU Load by spinning over sqrt()
(Defaults to 1 when value)]
@@ -161,6 +162,7 @@
local ALT_DIR_OUT=0
local ALT_DIR_RES=0
local ALT_HTML_OUT=0
+ local ALT_EMAIL_OUT=0
local RUN_NETEST=0
local QUIET_MODE=""
local VERBOSE_MODE=""
@@ -175,13 +177,16 @@
local OUTPUTFILE=""
local HTMLFILE_NAME=""
local HTMLFILE=""
+ local EMAIL_TO=""
local SCENFILES=""
local TAG_RESTRICT_STRING=""
local PAN_COMMAND=""
version_date=`head -n 1 $LTPROOT/ChangeLog`
- while getopts c:C:d:D:f:ehi:g:l:m:Nno:pqr:s:t:vw:x: arg
+ while getopts a:c:C:d:D:f:ehi:g:l:m:Nno:pqr:s:t:vw:x: arg
do case $arg in
+ a) EMAIL_TO=$OPTARG
+ ALT_EMAIL_OUT=1;;
c)
NUM_PROCS=$(($OPTARG))
if [ "$NUM_PROCS" -eq 0 ]; then
@@ -387,7 +392,7 @@
if [ ! "$OUTPUTFILE" ]; then ## User has not mentioned about the Outputfile name, then we need to definitely generate one
OUTPUTFILE_NAME=`date +"%Y_%b_%d-%Hh_%Mm_%Ss"`
OUTPUTFILE="-o $LTPROOT/output/LTP_RUN_ON-$OUTPUTFILE_NAME.output"
-
+ ALT_DIR_OUT=1
if [ ! "$HTMLFILE" ] ; then ## User has not mentioned HTML File name, We need to create one
HTMLFILE_NAME=`basename $OUTPUTFILE_NAME`
HTMLFILE="$LTPROOT/output/$HTMLFILE_NAME.html"
@@ -621,6 +626,80 @@
fi
+ if [ "$ALT_EMAIL_OUT" -eq 1 ] ; then ## User wants reports to be e-mailed
+ if [ [ ! "$HTMLFILE_NAME" ] -o [ ! "$OUTPUTFILE_NAME" ] -o [ ! "$LOGFILE_NAME" ] ] ; then
+ ##User does not have output/logs/html-output, nothing to be mailed in this situation
+ echo "Nothing to be mailed here...."
+ else
+ TAR_FILE_NAME=LTP_RUN_$version_date`date +"%Y_%b_%d-%Hh_%Mm_%Ss"`.tar
+ if [ "$HTMLFILE_NAME" ] ; then ## HTML file Exists
+ if [ "$ALT_HTML_OUT" -ne 1 ] ; then ## The HTML file path is absolute and not $LTPROOT/output
+ mkdir -p $LTPROOT/output ## We need to create this Directory
+ cp $HTMLFILE_NAME $LTPROOT/output/
+ fi
+ fi
+ if [ "$OUTPUTFILE_NAME" ] ; then ## Output file exists
+ if [ "$ALT_DIR_OUT" -ne 1 ] ; then ## The Output file path is absolute and not $LTPROOT/output
+ mkdir -p $LTPROOT/output ## We need to create this Directory
+ cp $OUTPUTFILE_NAME $LTPROOT/output/
+ fi
+ fi
+ if [ "$LOGFILE_NAME" ] ; then ## Log file exists
+ if [ "$ALT_DIR_RES" -ne 1 ] ; then ## The Log file path is absolute and not $LTPROOT/results
+ mkdir -p $LTPROOT/results ## We need to create this Directory
+ cp $LOGFILE_NAME $LTPROOT/results/
+ fi
+ fi
+ if [ -d $LTPROOT/output ] ; then
+ tar -cf ./$TAR_FILE_NAME $LTPROOT/output
+ if [ $? -eq 0 ]; then
+ echo "Created TAR File: ./$TAR_FILE_NAME successfully, added $LTPROOT/output"
+ else
+ echo "Cannot Create TAR File: ./$TAR_FILE_NAME for adding $LTPROOT/output"
+ fi
+ fi
+ if [ -d $LTPROOT/results ] ; then
+ tar -uf ./$TAR_FILE_NAME $LTPROOT/results
+ if [ $? -eq 0 ]; then
+ echo "Updated TAR File: ./$TAR_FILE_NAME successfully, added $LTPROOT/results"
+ else
+ echo "Cannot Update TAR File: ./$TAR_FILE_NAME for adding $LTPROOT/results"
+ fi
+ fi
+ if [ -e $LTPROOT/nohup.out ] ; then ## If User would have Chosen nohup to do ltprun
+ tar -uf ./$TAR_FILE_NAME $LTPROOT/nohup.out
+ if [ $? -eq 0 ]; then
+ echo "Updated TAR File: ./$TAR_FILE_NAME successfully, added $LTPROOT/nohup.out"
+ else
+ echo "Cannot Update TAR File: ./$TAR_FILE_NAME for adding $LTPROOT/nohup.out"
+ fi
+ fi
+ gzip ./$TAR_FILE_NAME ## gzip this guy
+ if [ $? -eq 0 ]; then
+ echo "Gunzipped TAR File: ./$TAR_FILE_NAME"
+ else
+ echo "Cannot Gunzip TAR File: ./$TAR_FILE_NAME"
+ fi
+ if [ -e /usr/bin/mutt ] ; then ## This is a better mail client than others
+ echo "Starting mailing reports to: $EMAIL_TO, file: ./$TAR_FILE_NAME.gz"
+ mutt -a ./$TAR_FILE_NAME.gz -s "LTP Reports on $test_start_time" $EMAIL_TO < /dev/null
+ if [ $? -eq 0 ]; then
+ echo "Reports Successfully mailed to: $EMAIL_TO"
+ else
+ echo "Reports cannot be mailed to: $EMAIL_TO"
+ fi
+ else ## Use our Ageold mail program
+ echo "Starting mailing reports to: $EMAIL_TO, file: ./$TAR_FILE_NAME.gz"
+ uuencode ./$TAR_FILE_NAME.gz $TAR_FILE_NAME.gz | mail $EMAIL_TO -s "LTP Reports on $test_start_time"
+ if [ $? -eq 0 ]; then
+ echo "Reports Successfully mailed to: $EMAIL_TO"
+ else
+ echo "Reports cannot be mailed to: $EMAIL_TO"
+ fi
+ fi
+ fi
+ fi
+
[ ! -z "$QUIET_MODE" ] && { echo "INFO: Test end time: $(date)" ; }
[ "$GENLOAD" -eq 1 ] && { killall -9 genload >/dev/null 2>&1; }