背景
需要在kafka日志文件中搜索数据以进行验证。不试图使用命令行使用者。
工具
问题
--files
参数要求文件,
分隔
--files <file1, file2, ...> REQUIRED: The comma separated list of
data and index log files to be dumped
有没有办法查看目录下的所有文件?尝试*log
,但它只查看目录中的第一个文件。
或
编写一个小程序是唯一的选择吗?
答案 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