175 lines
4.9 KiB
Bash
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
|
|
|
|
|
|
|