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

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.

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