程序部署于华为 RNC网管系统上,功能监控采集文件(每小时检查一次,如发现异常,则重启系统一核心进程,如当前小时已经重启过核心进程,则下小时如还有异常,则不再重启)
程序部署目录:
/export/home/szwg/check_north
包括核心程序 :check.sh
[下面3个文件,第一次执行check.sh后会自动产生,自建空白文件也可以]
日志文件:check_log.log
辅助时间记录文件:date_time.conf
辅助两小时不重复重启网管核心进程之一配置文件:restart_check.conf
cron job 部署如下:
#pm file check by every hours
1 * * * * /export/home/szwg/check_north/check.sh GYH > /dev/null 2>&1
代码如下:
#!/usr/bin/bash
#-----------------------------------------------------
# author :gyhong
# datetime: 2010-9-20
# version: 1.0
# end_edit_change_datetime:2010-2-20
#-----------------------------------------------------
#config
if [ $# -eq 1 ];then
if [ $1 != "GYH" ];then
exit 1;
fi
else
exit 1;
fi
BASH_PATH=/export/home/szwg/check_north
G_PM_PATH=/opt/OMC/var/itf_n/FileTransferIRP/PM
LOG_FILE=${BASH_PATH}/check_log.log
DATE_TIME_FILE=${BASH_PATH}/date_time.conf
PS_CHECK_FILE=${BASH_PATH}/restart_check.conf
#PATH=${PATH}${BASH_PATH}:/lib/svc/bin/
#export PATH
export LANG=en
export TZ=PRC
cd ${BASH_PATH}
datetime=`date +"%Y%m%d_%H"`
sys_name=`hostname`
ipaddress='10.201.127.97'
#okfilename=${sys_name}_${ipaddress}_count_${datetime}.log
#//////////////
#function out put log messages
#
#//////////////
function w_log()
{
echo "[$(date +%Y-%m-%d_%T)] $1"
}
get_datetime="`cat ${DATE_TIME_FILE} | cut -d'#' -f1 |cut -c1-9`"
datetime="`cat ${DATE_TIME_FILE} | cut -d'#' -f2`"
month_str=`echo ${get_datetime} | cut -d" " -f1`
day_str=`echo ${get_datetime} | cut -d" " -f2`
time_str=`echo ${get_datetime} | cut -d" " -f3`
datetime_str="`date +\"%a %b %e %T %Z %Y\" | cut -c5-13`#`date +"%Y-%m-%d"`"
echo ${datetime_str} > ${DATE_TIME_FILE}
#echo "${datetime}-${time_str}" | awk -F"#" '{printf("%s:",$1);}' > ${okfilename}
check_num=`ls -al ${G_PM_PATH} | awk '($6==amonth_str && $7==aday_str && substr($8,1,2)==atime_str) {print $0}' amonth_str=${month_str} aday_str=${day_str} atime_str=${time_str} | grep -v "\.$" | grep -v "xml$" | wc -l |sed "s/ //g"`
if [ ${check_num} -gt 28 ];then
w_log "${datetime} ${month_str} ${day_str} ${time_str} ${l_name} OK ${check_num}" >> ${LOG_FILE}
#echo "OK[${check_num}]" >> ${okfilename}
else
w_log "${datetime} ${month_str} ${day_str} ${time_str} ${l_name} ${l_dir} WARNING ${check_num}" >> ${LOG_FILE}
#echo "WARNING[OK<29> NOW$<${check_num}>]" >> ${okfilename}
fi
if [ ${check_num} -eq 0 ];then
ps_num=`grep "ok" ${PS_CHECK_FILE} |wc -l |sed 's/ //g'`
if [ ${ps_num} -eq 0 ];then
. /opt/OMC/svc_profile.sh
svc_adm -cmd restartsvc IRPService
w_log "restart IRPService" >>${LOG_FILE}
echo "ok" > ${PS_CHECK_FILE}
fi
else
cp /dev/null ${PS_CHECK_FILE}
fi
#/export/home/szwg/check/ipnet.sh ${okfilename}
#cat ${okfilename}
#rm -f ${okfilename}
阅读(1450) | 评论(1) | 转发(0) |