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"