今日主题:使用Shell脚本快速定位项目工程的错误日志 在工作中,我们会发现,随着需求的不断迭代,项目系统变得越发的复杂,一个项目系统里需要同时部署N个项目工程。 如何快速的去检查当前所有项目工程的日志是否有报错就成了一个棘手的问题。 面对这个问题,我的选择是使用Shell脚本来实现项目工程的错误日志查找与定位。 以下内容是Shell脚本的实现内容,每一行都有对应的注释,帮助理解。1rootltestbinmorechecklog。sh检查一个目录下所有指定日志文件中的报错23日志脚本4!usrbinenvbash是对shell的声明56定义一个变量,用于指定扫描日志的目录7basehomeproject89shell中无限循环定义10while〔〔1〕〕;do1112for循环开始遍历目录下的文件,过滤掉default目录13fornameinlsbasegrepvEdefault;1415开始执行16do1718输出目录路径19echobasename20判断是否是目录21if〔〔dbasename〕〕;then2223获取catalina。out文件中报ExceptionERROR的日志,过滤掉DEBUGskywalking10。8。0。37:8800这三类信息24resultgrepC10basenamelogscatalina。outgrepvEDEBUGskywalking10。8。0。37:8800grepC5EExceptionERROR2526if判断如果result为空27if〔〔zresult〕〕;then28继续29continue;3031if结束符32fi3334带颜色的输出一行信息,说明是什么目录下有报错35echoe33〔findExceptioninname33〔0mExcpetion:result36if结束符37fi38do结束符39done4041输出休息一分钟42echoesleep60seconds43等待一分钟44sleep60s45do结束符46done