栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 其他

Shell 脚本实现应用服务日志入库 Mysql

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell 脚本实现应用服务日志入库 Mysql

今天给大家分享一个 shell 脚本工具,通过 shell 脚本与 mysql 的结合,将某个具体服务的错误输出日志入库到指定的 mysql 表中,以便于进行错误问题的定位与分析。

日常工作中,经常需要和 linux 系统打交道,例如:服务部署、日志和服务状态查看等,而 shell 脚本是和 linux 交互的一种常见方法。以下代码实例为在 shell 脚本中嵌入 mysql 配置信息将错误日志信息落入到数据库中。

shell脚本如下:

#!/usr/bin/env bash

hostName="l-beta.io"
dbPort=3306
dbUser="beta"
dbPassword="123456"
dbName="test_log"
tableName="beta_error_log_record"
env="test1"

base="/home/q/www"

#进入死循环
while [[ 1 ]]; do
    #循环去遍历base目录下的文件夹,-vE 后面两个是要排除掉的项
    for name in `ls $base | grep -vE "default|genesis"`;
    do
        #echo $base/$name
        #判断是否是目录
        if [[ -d $base/$name ]]; then
           #定义当前时间的前一分钟,用于对日志内容进行过滤匹配使用
           before=`date -d "-1 minute" "+%Y-%m-%d %H:%M:"`
           # echo "Watching log $name in $before"
           #过滤获取对应目录下的catalina.out文件中的上一分钟的Exception and Error日志
           result=`grep -C5 "$before" $base/$name/logs/catalina.out | grep -vE "DEBUG|skywalking|10.8.0.37:8800" | grep -C5 -E "Exception|ERROR" | sed $'s/'/"/g' `
           #如果result为零就跳过本次循环
           if [[ -z "$result" ]]; then
                continue;
           fi
           echo "-------------------------->"
           #拼接insert sql 语句
           insert_sql="insert into $tableName (environment,project_name,content) values('$env','$name','nnException:nn$result')"
           echo $insert_sql > tmp.sql
           echo "***********start*************"
           echo $insert_sql
           #开始执行sql语句
           mysql -h$hostName  -P$dbPort  -u$dbUser -p$dbPassword $dbName -e "source tmp.sql"
           echo "************end************"
        fi
    done
    #输入休眠60s
    echo -e "sleep 60 secondsn"
    sleep 60s
done

以上 shell 脚本中关键信息都标有对应的注释,如需实操,可将 mysql 对应的配置信息及监控的日志服务路径进行更改和替换为目标信息即可。

欢迎关注【无量测试之道】公众号,回复【领取资源】
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、
资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。

备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:


添加关注,让我们一起共同成长!  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/279500.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号