使用DumpLogSegments

时间:2017-03-23 20:38:28

标签: bash apache-kafka

背景

需要在kafka日志文件中搜索数据以进行验证。不试图使用命令行使用者。

工具

使用Dump Log Segment Tool

问题

--files参数要求文件,分隔

--files <file1, file2, ...>             REQUIRED: The comma separated list of  
                                        data and index log files to be dumped

有没有办法查看目录下的所有文件?尝试*log,但它只查看目录中的第一个文件。

编写一个小程序是唯一的选择吗?

1 个答案:

答案 0 :(得分:0)

我修改了一些符合我目的的随机脚本。

检查每个文件的数据

#!/bin/bash

dirname="$1"
tosearch="$2"
files=""

if [[ -s $dirname ]] ; then
    for filename in $(ls -d $dirname/*log); do
            count=$(bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files "$filename" --print-data-log | grep "$tosearch" | wc -l)
            echo "$filename : $count"
    done
fi

统一检查所有文件中的数据

#!/bin/bash

dirname="$1"
tosearch="$2"
files=""

if [[ -s $dirname ]] ; then
    for filename in $(ls -d $dirname/*log); do
            files+="$filename,"
    done
    newfiles=$(echo "$files" | sed 's/,$//')
    count=$(bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files "$files" --print-data-log | grep "$tosearch" | wc -l)
    echo "$count"
fi