Решение задачи для анализа файла логово
На вход скрипта необходимо передать путь к файлу логов, в котором ищутся поля с WARNING, INFO, ERROR значения и подсчитывается результаты в переменные
This commit is contained in:
parent
9e4d97e068
commit
6350529eca
46
bash/task1/log_analyzer.sh
Executable file
46
bash/task1/log_analyzer.sh
Executable file
@ -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"
|
Loading…
Reference in New Issue
Block a user