Files
svc.ems/bin/omcMainWatcher

175 lines
4.9 KiB
Bash

#!/bin/bash
# This script is use to monitor the omcMain.
# Restart omcd when the omcMain is stopped
# When the omcMain process is suspended
# single: restart omcd
# dual: stop omcd
# The script run every minute and will write the event into /usr/local/omc/log/omcMainWatcherxxx.log
# Time: 2009-06-11
# Author: Zheng Jianhui
if [ `whoami` != "root" ] ; then
echo "Permission denied! Need root user"
exit
fi
/usr/local/omc/bin/dual/check_proc_status.sh
#mysql_user=`/usr/local/mssBak/script/encryption 1 "6266706d736f7a7c7b6b7f7b7f"`
#mysql_pw=`/usr/local/mssBak/script/encryption 1 "2b3a392757557b697b7e7e757b777c"`
mysql_user=administrator
mysql_pw=*86#ROtartsinim
#----- Get the omcSysNo -------------------------
confDir=/usr/local/omc/bin/conf
if [ `cat $confDir/omcd.conf |grep -c 'omcSysNo=0'` -eq 1 ] ; then
omcSysNo=0
else
omcSysNo=1
fi
#----- Get the dual mode ------------------------
#----- 0 single,1 dual ------------------------
if [ `cat $confDir/omcd.conf |grep -c 'omcRunMode=0'` -eq 1 ] ; then
omcRunMode=0
else
omcRunMode=1
fi
############################################################
################# Write event log #########################
################# Parameter: content #######################
function writeLog()
{
watcherLogFile=/usr/local/omc/log/watcher`date +%Y%m%d`.log
timestr=`date +%H:%M:%S`
#echo $timestr
`echo "$timestr $1" >> $watcherLogFile`
}
#writeLog hello
################# End writeLog function ####################
################# Insert alarm log #########################
############## Parameter: stop, suspend ####################
function insertAlarmLog()
{
case "$1" in
'stop')
#----- Get the previous record number -----------
prev_record_arr=`/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
SELECT count(*) as record_count FROM OMC_PUB.sysAlarmLog WHERE sysTypeNo=0 and sysNo=$omcSysNo and compCode=130 and alarmCode=1 and clearTime = '0000-00-00 00:00:00';
_EOF_`
prev_record=`echo $prev_record_arr | awk '{print $2}'`
#----- Insert the alarm -------------------------
if [ "$prev_record" == "0" ] ; then
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
INSERT INTO OMC_PUB.sysAlarmLog (sysTypeNo,sysNo,subSysNo,compCode,alarmCode,alarmTime) VALUES (0,$omcSysNo,0,130,1,CURRENT_TIMESTAMP);
_EOF_
fi
;;
'suspend')
#----- Get the previous record number -----------
prev_record_arr=`/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
SELECT count(*) as record_count FROM OMC_PUB.sysAlarmLog WHERE sysTypeNo=0 and sysNo=$omcSysNo and compCode=130 and alarmCode=2 and clearTime = '0000-00-00 00:00:00';
_EOF_`
prev_record=`echo $prev_record_arr | awk '{print $2}'`
#----- Insert the alarm -------------------------
if [ "$prev_record" == "0" ] ; then
/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
INSERT INTO OMC_PUB.sysAlarmLog (sysTypeNo,sysNo,subSysNo,compCode,alarmCode,alarmTime) VALUES (0,$omcSysNo,0,130,2,CURRENT_TIMESTAMP);
_EOF_
fi
;;
esac
}
################# End insertAlarmLog function #################
#----- Check the process id of the omcMain -------
#. /etc/rc.d/init.d/functions
procName=omcMain
#pid=`status $procName`
pid=`pidof $procName`
#if [ "$pid" == "omcMain is stopped" ]; then
if [ "$pid" == "" ]; then
#----- omcMain is stopped -----------------
insertAlarmLog stop
writeLog "omcMain is stop, restart it"
tmpLogFile=/usr/local/omc/log/watcher`date +%Y%m%d`.log
`tail -5 /usr/local/omc/install.log >> $tmpLogFile`
wxc2dm=`/usr/local/omc/bin/wxc2_omcd restart`
else
#----- omcMain is running -----------------
update_time_arr=`/usr/bin/mysql -u$mysql_user -p$mysql_pw <<_EOF_
SELECT UNIX_TIMESTAMP(updateTime) as updateTime FROM OMC_PUB.sysInfo WHERE sysTypeNo=0 and sysNo=$omcSysNo;
_EOF_`
update_time=`echo $update_time_arr | awk '{print $2}'`
if [ -z "$update_time" ]; then
writeLog "omcMain is just running, check heartbeat later"
exit
fi
now_time=`date +%s`
time_delay=$[$now_time - $update_time]
#echo update_time=$update_time
#echo now_time=$now_time
#echo time_delay=$time_delay
#----- check heartbeat updatetime ---------
if [ "$time_delay" -ge "180" ]; then
insertAlarmLog suspend
writeLog "omcMain is suspended"
if [ "$omcRunMode" -eq "0" ]; then
writeLog "omcMain is running in single mode, restart it"
wxc2dm=`/usr/local/omc/bin/wxc2_omcd restart`
else
writeLog "omcMain is running in dual mode, restart it"
wxc2dm=`/usr/local/omc/bin/wxc2_omcd restart`
fi
fi
fi
ProcList="iptrans omcMain paraComm subsComm logCollector omcCleaner smcli cdrCollector subsDataBackup ftpSend alarmAgent nrtrde sftpSend alive bsscomm"
logFile=/usr/local/omc/log/watcher`date +%Y%m%d`.log
printf "`date '+%D %H:%M:%S'` " >> $logFile
for ProcName in $ProcList; do
if [ -z "`pidof $ProcName`" ]; then
state="N"
else
state="Y"
fi
printf "$state " >> $logFile
done
printf "\n" >> $logFile
chmod 777 /usr/local/apache/htdocs/ftpFile
chmod 640 /usr/local/omc/log/*
chmod -R 777 /usr/local/apache/htdocs/db_backup/
#echo Finish