一. 应用场景
-
运维日志定位问题
-
日志文件为多层嵌套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 ==============";