← До фільтрів та технологій

← До списку лабораторних по Linux

Linux Лабораторна 57: Командний конвеєр для обробки логів

Технологія: Linux

Номер лабораторної: 57 · Рівень: middle

Тема: Текстові потоки: grep, awk, sed у одному ланцюжку

Повний опис / сценарій лабораторної:

Мета: навчитися комбінувати grep, awk та sed у одному конвеєрі для аналізу лог файлів.



Крок 1. Створити тестовий лог файл.

Команда: cat > ~/pipeline_lab.log

Пояснення: введіть кілька рядків з різними рівнями логів наприклад INFO, WARN, ERROR та завершить введення.



Крок 2. Використати grep для фільтрації тільки рядків ERROR.

Команда: grep "ERROR" ~/pipeline_lab.log

Пояснення: переконайтеся що виводяться лише потрібні записи.



Крок 3. Використати awk для виводу тільки певних колонок.

Пояснення: припустіть що формат логів містить дату, час, рівень та повідомлення, виведіть рівень і повідомлення.



Крок 4. Використати sed для заміни частини тексту.

Команда: grep "ERROR" ~/pipeline_lab.log | sed "s/ERROR/ERR/g"

Пояснення: перевірте що рівень змінено.



Крок 5. Побудувати конвеєр який рахує кількість записів кожного рівня.

Приклад: awk '{print $3}' ~/pipeline_lab.log | sort | uniq -c

Пояснення: замініть номер колонки на відповідний вашому формату.



Крок 6. Додати до конвеєра фільтр по даті.

Пояснення: використайте grep або awk щоб враховувати лише записи за конкретний день.



Крок 7. Зберегти конвеєр у невеликий скрипт.

Команда: echo "#!/usr/bin/env bash" > ~/run_pipeline.sh; echo "awk ..." >> ~/run_pipeline.sh; chmod +x ~/run_pipeline.sh

Пояснення: замініть трикрапку на свій готовий конвеєр.



Крок 8. Запустити скрипт і перевірити результат.

Команда: ./run_pipeline.sh



Крок 9. Обговорити продуктивність конвеєрів на великих файлах.

Пояснення: іноді доцільно спочатку робити грубий grep, а потім складніші обробки.



Крок 10. Міні звіт.

Завдання: опишіть приклад робочого завдання де конвеєр з grep, awk, sed замінює складний однорядковий скрипт.