Напишите скрипт для сводки ошибок в журналах

ShellBeginner
Практиковаться сейчас

Введение

Для трёх журналов приложения нужно выполнить одну и ту же простую проверку: подсчитать строки, начинающиеся с ERROR, и вывести по одному результату для каждого файла. Повторять команды вручную не нужно — короткий цикл обработает все файлы .log.

В предыдущей лабораторной работе с пошаговыми инструкциями вы последовательно создали именно такой цикл. В этом задании нужно написать небольшой многоразовый скрипт без дополнительного копирования файлов, каталогов для отчётов и требований к обработке ошибок.

Создайте скрипт для сводки ошибок

Текущая ситуация

В каталоге /home/labex/project/log-automation/logs находятся файлы api.log, healthy.log и worker.log.

Задача

  • Создайте файл /home/labex/project/log-automation/process-logs.sh.
  • Первый аргумент скрипта — каталог с журналами.
  • Обработайте файлы, имена которых заканчиваются на .log.
  • Для каждого файла подсчитайте строки, начинающиеся с ERROR.
  • Выведите одну строку в формате filename errors=count.

Цель

В результате должен остаться один исполняемый скрипт, который при запуске как ./process-logs.sh logs выводит правильную сводку ошибок.

Критерии приёмки

  • Скрипт начинается с #!/bin/bash и является исполняемым.

  • Команда ./process-logs.sh logs выводит:

    api.log errors=1
    healthy.log errors=0
    worker.log errors=2
    

Подсказки

Какой пример из пошаговой работы ближе всего к этому заданию?

Просмотрите цикл, который перебирал файлы по шаблону "$log_dir"/*.log, подсчитывал строки ^ERROR и выводил базовое имя файла вместе с количеством строк.

Итоги

Вы преобразовали знакомый цикл подсчёта строк в журналах в короткий многоразовый скрипт Bash.

✨ Проверить решение и практиковаться