Logic to send email alerts only 5 times a day

Hi,

I have written below disk space monitoring script to monitor disk space every minute. I have scheduled this script through cron. But now my problem is this script alerts the users continuously until the space is freed up. These emails are filling up the inbox exponentially until the space has been freed up. Please let me know how to stop sending the email alerts after 5 times and check for next day if the space is not freed up, then repeat the process.


. /home/.profile

# Get the list of Integration Service

infacmd.sh listservices -dn $INFA_DOMAIN -un Administrator -st IS | sed '$d' > $scripts_path/temp_ds.txt

while read line

   do

   ISDir=$(grep $line < $scripts_path/integration_services.txt | awk '{print$2}')

   echo "Integration Service path:"$ISDir


   disk_limit=$(grep $line < $scripts_path/integration_services.txt | awk '{print$3}')

   echo " "
   echo "Defined threshold limit for file system of data directory ${ISDir} is ${disk_limit}."
   echo " "

df -k ${ISDir}
        total_disk=`df -k ${ISDir}|tail -1|tr -s ' ' ' '|cut -f2 -d " "`;export total_disk
        available_disk=`df -k ${ISDir}|tail -1|tr -s ' ' ' '|cut -f3 -d " "`;export available_disk
        disk_percent_used=`df -k ${ISDir}|tail -1|tr -s ' ' ' '|cut -f4 -d " "`;export disk_percent_used
        used_disk=`expr ${total_disk} - ${available_disk}`
        mounted_file_system=`df -k ${ISDir}|tail -1|tr -s ' ' ' '|cut -f7 -d " "`;export mounted_file_system

        if [ ${used_disk} -ge ${disk_limit} ];
           then
                echo " "
                echo "WARNING:"
                echo "Available disk space of file system ${mounted_file_system} for Integration Service directory ${ISDir}"
                echo "is ${used_disk} Kbytes which is greater than the defined threshold limit of ${disk_limit} Kbytes."
                echo " "
                echo "Please increase size of file system ${mounted_file_system} for PowerCenter Integration Service Directory ${ISDir} before"
                echo "Informatica file system runs out disk space otherwise Informatica PowerCenter operations may be compromised."

        #Notification module
                echo "WARNING: ${ISDir} filesystem has exceeded their upper limit. Available disk space of file system ${mounted_file_system} for data directory ${ISDir} is ${av
ailable_disk} Kbytes which is greater than the defined threshold limit of ${disk_limit} Kbytes. Please increase size of file system ${mounted_file_system} for PowerCenter Integr
ation Service Directory ${ISDir} before Informatica file system runs out of disk space otherwise Informatica PowerCenter operations may be compromised."|mailx -s "Email notifica
tion of Integration Service directory exceeding defined threshold" ${alertlist}
        echo " "
        echo "Note:  Email notification of Integration Service direcroty exceeding defined threshold"
        echo "was sent to ${alertlist}"

        fi

    done < $scripts_path/temp_ds.txt

    rm $scripts_path/temp_ds.txt

Regards,
Sam

Is your alertlist a single person?
If so, after you email, do the following
append a file with some key info
date (as YYYYMMDD), alertlist

Then, before you email, you could do a

cat logfile | grep YYYYMMDD | grep alertlist | wc -l

and see if you have already sent five times

My alert list has multiple recipients. Please let me know how to do it.

If alertlist has many names, then follow same idea, just break the line into individual names. Write each entry to the log file.
You will also need to break you email into individual emails in order to check for existence of five prior messages for the same day.

hard for me to say how to break apart your alertlist, since I do not see where you build that variable inside your script.