Практическое задание

Эта задача — шаг 6 курса «Логи: разбор и обслуживание»

Вывод миграций из лога деплоя

средне~5 мин

В логе выкладки /var/log/deploy/run.log вывод миграций БД обрамлён строками >>> migrations begin и <<< migrations end. Сохрани в /root/migrations.txt только строки внутри блока — без самих маркеров и без всего, что до и после.

Что потренируешь:
  • awk
  • флаг состояния
  • next
  • блок между маркерами

Разбор темы

Вырезать кусок лога между двумя маркерами — задача с состоянием: для каждой строки нужно знать, внутри мы блока или снаружи. В awk это переменная-флаг, которую включает строка начала и выключает строка конца. Порядок правил решает, попадут ли маркеры в вывод: next после включения пропускает печать стартового маркера, а сброс флага до правила печати не даёт напечатать конечный. Голый паттерн без действия в awk значит «напечатать строку, если выражение истинно».

Что проверяется

  1. в /root/migrations.txt только строки миграций

Как это выглядит