首页 > 代码库 > 程序异常监视脚本
程序异常监视脚本
这是应朋友要求帮助写的一个简单的程序异常监视脚本,主要通过分析日志文件中的异常信息关键词,检测到关键词则可以认为程序运行异常,重启线程。
脚本依赖linux下的crontab提供的定时器定时执行日志分析脚本。
为了帮助更轻松看懂脚本,这里简单讲解下几个高频的语句。
1、日志时间戳 TIMESTAMP
TIMESTAMP=`date +%Y%m%d\ %H:%M:%S`这里调用shell的基本方法date,按照指定的格式输出时间信息
2、输出信息到日志文件
echo -n "${TIMESTAMP} 目标路径:${LOG_PATH} \n" >>${MONITOR_LOG_PATH}echo是shell较为常用的用来输出信息到console(命令行)的方法,>>是用来将前面引号内的信息重定向输出到指定的日志文件,>>是以追加的方式写入日志文件,>是以覆盖的方式将信息写入文件,${xxx}是取变量名为MONITOR_LOG_PATH的变量值。
3、判断某个文件路径是否存在
if [ ! -d "${PREFIX_PATH}/log/" ]; then mkdir -p "${PREFIX_PATH}/log/" fiif条件语句中-d "${PREFIX_PATH}/log/"用来判断-d的参数路径是否存在,前面有!表示路径不存在的情况下执行相关的语句。
4、获取最新日期的日志文件
LATEST_LOG_FILE=`ls ${LOG_PATH}|sort -nr|head -1`ls ${LOG_PATH}是显示指定路径下的所有文件,sort -nr是按照时间逆序即从新到旧的顺序排序,head -1是只显示按顺序的第一个记录。
部分示例语句:
# STEP1、Setup the initial environment parameter PREFIX_PATH=$(cd "$(dirname "$0")"; pwd) if [ ! -d "${PREFIX_PATH}/log/" ]; then mkdir -p "${PREFIX_PATH}/log/" fi MONITOR_LOG_PATH="${PREFIX_PATH}/log/event.log" TIMESTAMP=`date +%Y%m%d\ %H:%M:%S` echo -n "${TIMESTAMP} STEP 1 Setup the initial environment parameter \n" >>${MONITOR_LOG_PATH} LOG_PATH="/home/alex/Desktop/test/" EXCEPTION_KEYWORD="CreateRecord failed" EXCEPTION_FLAG=false TIMESTAMP=`date +%Y%m%d\ %H:%M:%S` echo -n "${TIMESTAMP} >>>>>目标路径:${LOG_PATH} \n" >>${MONITOR_LOG_PATH} TIMESTAMP=`date +%Y%m%d\ %H:%M:%S` echo -n "${TIMESTAMP} >>>>>检索关键词:${EXCEPTION_KEYWORD} \n" >>${MONITOR_LOG_PATH} echo -n "\n"
这里附上脚本文件:logMonitor.sh
程序异常监视脚本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。