Linux команды для парсинга логов

Author Admin Reading time 5 minutes

Эффективная обработка логов — ключевая задача для системных администраторов, специалистов по DevOps и информационной безопасности. В этой статье рассмотрим основные команды Linux, которые помогут быстро анализировать, фильтровать и преобразовывать логи.

Основные команды для парсинга и анализа логов

sed — мощный текстовый редактор потоков. Применяется для манипуляций с текстом: поиска, замены, вставки строк и других действий, поддерживает регулярные выражения.

sed 's/поиск/замена/g' файл.log

awk — универсальный инструмент работы с текстом и структурированными данными. Позволяет делать выборки, фильтрацию, обработку столбцов и формирование отчетов.

awk '{print $1, $3}' файл.log

echo — используется для вывода текста или переменных, часто применяется при создании shell-скриптов для отладки и отображения промежуточных результатов.

echo "Hello, Logs!"

grep — классика поиска по тексту. Ищет строки, подходящие под регулярные выражения, фильтрует и выводит совпадения.

grep "ошибка" файл.log

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

ngrep -d eth0 "GET"

ripgrep (rg) — быстрый инструмент поиска по файлам и каталогам, поддерживает регулярные выражения.

rg "ошибка" /var/log/

agrep — расширенный grep для поиска с учетом ошибок.

agrep "поиск" файл.log

ugrep — усовершенствованный grep с расширенными возможностями поиска.

ugrep "слово" файл.log

ack — инструмент поиска, оптимизированный под программистов.

ack "pattern" /каталог/

cut — обрезает текст по столбцам и разделителям.

cut -d" " -f1,3 файл.log

sort — сортирует строки.

sort файл.log

uniq — удаляет повторяющиеся строки.

uniq файл.log

diff — сравнивает два файла.

diff лог1.log лог2.log

tac — выводит строки файла в обратном порядке.

tac файл.log

cat — объединяет и отображает содержимое файлов.

cat файл1.log файл2.log

printf — форматирует и выводит текст.

printf "%s\n" "Строка"

comm — сравнивает строки в двух отсортированных файлах.

comm файл1.log файл2.log

less/more — постраничный просмотр файлов логов.

less файл.log

tail — выводит последние строки файла.

tail -f файл.log

head — показывает первые строки файла.

head файл.log

jq — парсинг и форматирование JSON-логов.

jq . файл.json

tr — заменяет символы и строки.

tr -d '\r' < файл.log

ccze — цветовое выделение логов.

cat файл.log | ccze

csvcut — выделяет столбцы из CSV-файлов.

csvcut -c 1,3 файл.csv

nl — нумерует строки в файле.

nl файл.log

rev — переворачивает строки задом наперед.

rev файл.log

vimdiff — визуальное сравнение содержимого файлов.

vimdiff файл1.log файл2.log

watch — периодически выполняет команду.

watch -n 5 tail файл.log

wc — подсчитывает количество строк, слов и байт.

wc -l файл.log

paste — объединяет содержимое из нескольких файлов построчно.

paste файл1.log файл2.log

ag — The Silver Searcher — шустрее grep, оптимизирован под поиск кода и данных.

ag ошибка /var/log/

pt — The Platinum Searcher — быстрое средство для поиска.

pt error /var/log/

Заключение

Использование перечисленных Linux-команд делает работу с логами быстрой, эффективной и гибкой. Автоматизация обработки логов помогает быстро выявлять инциденты, находить аномалии или оптимизировать инфраструктуру сервиса. Рекомендуется добавить эти утилиты в свой инструментарий и регулярно их использовать для повышения производительности работы с логами.