今日主题:使用Shell 脚本快速定位项目工程的错误日志
在工作中,我们会发现,随着需求的不断迭代,项目系统变得越发的复杂,一个项目系统里需要同时部署N个项目工程。
如何快速的去检查当前所有项目工程的日志是否有报错就成了一个棘手的问题。
面对这个问题,我的选择是使用Shell 脚本来实现项目工程的错误日志查找与定位。
以下内容是Shell 脚本的实现内容,每一行都有对应的注释,帮助理解。
1root@l-test bin # more check_log.sh #检查一个目录下所有指定日志文件中的报错
2
3日志脚本
4#!/usr/bin/env bash #是对shell的声明
5
6#定义一个变量,用于指定扫描日志的目录
7base="/home/project"
8
9#shell 中无限循环定义
10while [[ 1 ]]; do
11
12#for 循环开始遍历目录下的文件,过滤掉default目录
13 for name in `ls $base | grep -vE "default"`;
14
15#开始执行
16 do
17
18#输出目录路径
19 echo $base/$name
20#判断是否是目录
21 if [[ -d $base/$name ]]; then
22
23# 获取catalina.out 文件中报Exception|ERROR的日志,过滤掉DEBUG|skywalking|10.8.0.37:8800这三类信息
24 result=`grep -C10 $base/$name/logs/