Linux大日志内容查找

 最近在工作中遇到了一个问题,由于网关日志没有使用logrotate来进行切割,一天的日志有几十个GB, 当使用 grep , sed命令时会卡住很长时间, 基本是假死状态。决定使用脚本来处理。

思路就是: 先将大日志按8000行进行切割成小日志,再循环使用 sed 查找后追加至一个临时的日志当中。 如: 查找2024-05-29 这一天,09:15 到 09:20 期间网关发生的日志行为。

  脚本内容如下:

#!/bin/sh

 echo 'literate all the logfiles'
 rm -rf x*   # 删除掉历史的小文件
 split  -l 8000   gateway.log   -a  6   # 8000 行来切切割,小文件前缀是 x开头后加6个随机英文字母
 echo 'split files done'
for file in `ls`; do
    echo $file
    if [ -f "$file" ]; then
      if [[ "$file" =~ ^"x" ]]; then 
                                 
        echo "find the $file"
     
       sed -n '/2024-05-29 09:15/,/2024-05-29 09:20/p' $file >> 0529.log  # 将日志追加至0529.log中 


        echo 'finish the grep append write'
      fi
    fi
done


echo 'Done'
 

切割的小日志如下:

 最后,在目标文件 0529.log 中再来查看2024-05-29 这一天,09:15 到 09:20 期间网关发生的日志行为。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值