监测日志中关键字

测试需要:

  持续监测日志,当日志出现指定关键字时,做一些工作。

使用的方法:

checklog()
{
        while :
        do 
                #记录日志文件行数
                oldline=`wc -l < ${logfile}`
                echo `date`, $oldline
                
                #设定检查的频率,可以与日志输出的频率匹配
                sleep 0.5
                
                #新的日志中查找关键字
                sed -n ''"${oldline}"',$p' ${logfile} | grep ${key} > /dev/null
                
                #$?是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。
                #如果上面的命令找到关键字则$?为0,此时打印提示并退出循环
                if [[ $? -eq 0 ]] 
                then 
                        echo `date` + " ${logfile} check finished! "
                        break
                fi 
        done     
}

有更好的方法可以分享下哦

原文地址:https://www.cnblogs.com/workingdiary/p/13229188.html