程序异常监视脚本

本文介绍了一个用于监视程序异常并自动重启线程的脚本,通过定时执行日志分析,实现对程序运行状态的实时监控。脚本利用Linux下的crontab定时器,并通过Shell脚本语言实现关键功能,包括日志时间戳提取、信息输出到日志文件、文件路径判断及日志文件检索等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是应朋友要求帮助写的一个简单的程序异常监视脚本,主要通过分析日志文件中的异常信息关键词,检测到关键词则可以认为程序运行异常,重启线程。

脚本依赖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/"
fi
if条件语句中-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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值