From 6350529ecaa47abfd18665cbc2f5c70c014e58c0 Mon Sep 17 00:00:00 2001 From: Vitaliy Turov Date: Mon, 25 Nov 2024 20:59:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=B0=20=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit На вход скрипта необходимо передать путь к файлу логов, в котором ищутся поля с WARNING, INFO, ERROR значения и подсчитывается результаты в переменные --- bash/task1/log_analyzer.sh | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 bash/task1/log_analyzer.sh diff --git a/bash/task1/log_analyzer.sh b/bash/task1/log_analyzer.sh new file mode 100755 index 0000000..b0d5e85 --- /dev/null +++ b/bash/task1/log_analyzer.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Проверка наличия аргумента +if [ "$#" -ne 1 ]; then + echo "Ошибка: Необходимо указать путь к лог-файлу." + echo "Использование: $0 <путь к лог-файлу>" + echo "Этот скрипт анализирует лог-файл на наличие ошибок, предупреждений и информационных сообщений." + echo "$0 /var/log/syslog" + exit 1 +fi + +# Путь к лог-файлу +log_file_path="$1" + +# Проверка существования файла +if [ ! -f "$log_file_path" ]; then + echo "Ошибка: Файл '$log_file_path' не существует." + exit 1 +fi + +# Переменные для хранения количества сообщений +error_count=0 +warning_count=0 +info_count=0 + +# Чтение лог-файла и подсчет сообщений +while IFS= read -r line +do + case "$line" in + *"ERROR"*) + ((error_count++)) + ;; + *"WARNING"*) + ((warning_count++)) + ;; + *"INFO"*) + ((info_count++)) + ;; + esac +done < "$log_file_path" + +# Вывод результатов +echo "Количество сообщений в лог-файле:" +echo "Ошибки: $error_count" +echo "Предупреждения: $warning_count" +echo "Информационные сообщения: $info_count"