Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rb:bash-generic-script-framework1 [10/10/2013 14:21] (current)
Line 1: Line 1:
 +====== Generic script framework 1. ======
 +
 +This script framework is intended for scripts which are run via cron for example, it doesn'​t try to handle command line arguments as might be needed in an interactive script.
 +
 +  #!/bin/bash
 +  ​
 +  #Written Andrew Stringer <​DATE>​
 +  ​
 +  #Purpose of Script
 +  #​=================
 +  #
 +  #                                                                                                                                    ​
 +  #                                            ​
 +                                                                                                                                        ​
 +  #turn on debugging, -x starts, +x stops                                                                                               
 +  set +x                                                                                                                                ​
 +  ​
 +  #Variables
 +  #=========
 +                                                                                                                                        ​
 +  #set to 3 for testing, this forces sending mail, normally should be 0                                                                 
 +  SENDEMAIL=0 ​                                                                                                                          
 +                          ​
 +  EMAIL=andrew.stringer@mycompany.com
 +  LOGFILE=/​path/​to/​logfile/​log.txt
 +  TMPLOG=/​tmp/​tmplog.txt-$$
 +  ​
 +  DATE=`date +%b" "​%d"​ "%Y`
 +  DAY=`date +%a`
 +  DATENUM=`date +%d`
 +  echo " " >> ${LOGFILE}
 +  echo -n "​${DATE} - " >> ${LOGFILE}
 +  ​
 +  ​
 +  #Test to force 1st of the month
 +  #DATENUM=01
 +  if [ $DATENUM == 01 ]
 +  then
 +          MONTHTEST="​ - 1st of the month test email."​
 +          SENDEMAIL=2
 +  fi
 +  ​
 +  #Start of code
 +  #​=============
 +  ​
 +  echo "<​What I'm going to do text>"​ > ${TMPLOG}
 +  echo "​================================"​ >> ${TMPLOG}
 +  echo ""​ >> ${TMPLOG}
 +  echo "From /​path/​to/​sctipt/​scriptname.sh on `hostname`"​ >> ${TMPLOG}
 +  echo ""​ >> ${TMPLOG};
 +  echo ""​ >> ${TMPLOG};
 +  ​
 +  <​code>​
 +  .
 +  .
 +  .
 +  .
 +  </​code>​
 +  ​
 +    #If any errors encountered,​ send email.
 +  if [ ${CPRESULT} != 0 ] || [ ${CPUSERRESULT} != 0 ]
 +          then
 +          SENDEMAIL=1
 +  fi
 +  ​
 +  ​
 +  #Code Finishes here
 +  #​==================
 +  ​
 +  #Send email
 +  #==========
 +  ​
 +  if [ ${SENDEMAIL} -eq 1 ]
 +          then
 +          /bin/mailx -s "​Failure reason `hostname`."​ ${EMAIL} < ${TMPLOG}
 +  elif [ ${SENDEMAIL} -eq 2 ]
 +          then
 +          /bin/mailx -s "​Failure reason `hostname`, ${MONTHTEST}."​ ${EMAIL} < ${TMPLOG}
 +  elif [ ${SENDEMAIL} -eq 3 ]
 +          then
 +          /bin/mailx -s "​scriptname.sh on `hostname`, set to testing."​ ${EMAIL} < ${TMPLOG}
 +  else
 +          echo "No errors"​ > /dev/null
 +  fi
 +  ​
 +  ​
 +  #Clean up any mess and finish
 +  #​============================
 +  rm ${TMPLOG}
 +  ​
 +  #exit with return status reflecting how it all went.
 +  exit ${SENDEMAIL}
  

rb/bash-generic-script-framework1.txt ยท Last modified: 10/10/2013 14:21 (external edit)