批量解压嵌套zip包日志文件并输出关键日志shell脚本

批量解压嵌套zip包日志文件并输出关键日志shell脚本

一. 应用场景

  • 运维日志定位问题
  • 日志文件为多层嵌套zip包
  • 最要命的是要排查n多个日志

二. 流程图

三. shell脚本源码

#!/bin/bash
# 定义日志文件统一上传目录logpath 
logpath=/root/tool/log
# 定义需要检索的关键字keyword
read -p "请输入要检索的关键字:" word
cd $logpath; 
# logpath目录zip包的数量 > 0,则循环
while [ `ls -l|grep .zip|wc -l` -gt "0" ] 
 # 遍历logpath目录所有的zip文件 
  for i in `find $logpath -name '*.zip'` 
     echo "start to unzip " $i; 
     unzip $i; 
     rm -f $i; 
for j in `ls $logpath`  
 # 如果是文件,则开始检索关键字 
  if [ -f "$j" ];then
   # 提供两种方式 1-追加到report.txt 2-界面输出
   # echo "开始检索关键字"; 
   # grep -i "$word" $j >> "$logpath/report.txt" 
    echo "============== in file: $j ==============";