#!/bin/sh
#
# crm_alarm [-n] alarm_level alarm_msg
#       alarm_level: the smaller the number, the higher the priority
#       -n: no pager, default is to page
#
PATH=/bin:/usr/bin:/home/ctu/bin

host=$(hostname)
reply_to=report@apol.com.tw
mail_list="duke@mt.com.tw kevinchang@aptg.com.tw alanchiang@aptg.com.tw webberchien@aptg.com.tw"
pager="ctu@ctutech.com"
pager=


# default mail list include pager
mail_to="$mail_list $pager"


# log the alarm
log_alarm() {
        echo $now_date $now $alarm_level "$alarm_msg" >> $alarm_log
}


# mail the alarm
mail_alarm() {
        /usr/sbin/sendmail -r $reply_to -t <<!
To: $mail_to
Subject: [$host] backup alarm - $alarm_level

 $host: $alarm_msg
!
        echo $now $alarm_level "$alarm_msg" > $last_alarm_mailed
}

prog_name=$(basename $0)

# process -n flag
[ "$1" = "-n" ] && { shift; mail_to="$mail_list"; } ;
if [ "$#" != "2" ]
then
        echo "usage: $prog_name [-n] alarm_level alarm_msg"
        echo "        -n: no pager, default is to use pager"
        exit 1
fi


alarm_log=$HOME/logs/alarm.log

# parse the last alarm mailed
last_alarm_mailed=$HOME/logs/last_alarm_mailed
if [ -f "$last_alarm_mailed" ]
then
  read last_alarm_date last_alarm_level last_alarm_desc < $last_alarm_mailed
fi

[ "$last_alarm_date" == "" ] && last_alarm_date=0
[ "$last_alarm_level" == "" ] && last_alarm_level=100


now_date=$(date)
now=$(date +"%s")
alarm_level=$1
alarm_msg=$2

log_alarm

# we don't send mail if we cannot ping internet
check_internet
[ "$?" != "0" ] && exit 0

mail_alarm
