Добрый день,
Требуется написать bash скрипт extract-scores.sh для парсинга определенных значений в файле, в котором находится вывод из stdout.
Пример скрипта, который должен в результате выводить список значений, которые он распарсил. Скрипт ниже для обхода stdout другой бенчмарки. Скрипт ищет строки с названиями
"Total time (ms)"
"Nodes searched"
"Nodes/second"
После строк стоит значение и в цикле через grep и awk берет только число.
И затем score после обхода передаются на вывод в маску на последней строке скрипта.
Результат запуска скрипта такой -
Score:Score:Total Time (ms):608697:ms:HB:
Score:Score:Nodes searched:1899976788:Nodes:HB:
Score:Score:Nodes/second:345633:NPS:HB:
Скрипт extract-scores.sh:
#!/bin/bash
LOG=*.stdout
for A in "Total time (ms)" "Nodes searched" "Nodes/second"; do
score=$NA
units=$ND
log_exists $LOG && {
if [[ $A == "Total time (ms)" ]]; then
SCORE_LINE=$(cat *.stdout | grep "$A" | awk '{print $5;}')
units="ms"
elif [[ $A == "Nodes searched" ]]; then
SCORE_LINE=$(cat *.stdout | grep "$A" | awk '{print $4;}')
units="Nodes"
else
SCORE_LINE=$(cat *.stdout | grep "$A" | awk '{print $3;}')
units="NPS"
fi
score=$SCORE_LINE
}
# metric kind metric mane value units type
WORKLOAD=$A print_single_metric "$METRIC_KIND_SCORE" "$METRIC_KIND_SCORE" "$score" "$units" "$HIGHER_BETTER"
done
Задача:
Нужно сделать скрипт с такой же логикой и структурой вывода, чтобы из прикрепленного файла sysbench.log парсились значения. Как видно в логе, в нем результаты под-тестов разделаются заголовком sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Для первой секции надо сделать, чтобы парсились значения с указанием CPU
CPU events per second
CPU total number of events
CPU Latency avg
Далее в логе идет следующяя секция для Memory
Memory Total operations per sec
Memory MiB transferred
Memory Latency avg
Далее идет секция подготовки данных для SSD теста. Из этой секции ничего не надо
В следующей секции сам SSD тест. Из нее надо
SSD reads/s:
SSD writes/s:
SSD аsyncs/s:
SSD Throughput read, MiB/s:
SSD Throughput written, MiB/s:
SSD Latency avg
Из следующих двух последних секций ничего парсить не надо
Разделы:
Опубликован:
11.09.2025 | 16:50 [поднят: 11.09.2025 | 16:50]
Заказ находится в архиве