Загрузка...

Speed ​​up finding errors in **** using awk and color output

Thread in Articles created by APT29388 Nov 12, 2024. (bumped Nov 13, 2024) 303 views

  1. APT29388
    APT29388 Topic starter Nov 12, 2024 ГУРУ ИНВАЙТА - lolz.live/threads/8567181 :admin:
    При анализе ***** на серверах или в контейнерах часто требуется быстро найти нужную информацию, особенно в случаях, когда **** «завалены» повторяющимися сообщениями. Обычно для этого используют такие команды, как grep, но можно пойти дальше и сделать поиск более удобным, добавив цветное выделение и сортировку по ключевым словам.

    1. Цветное выделение важных строк в логах с awk
    Представим, что у вас есть файл ***** app.log, в котором вы хотите выделить все строки, содержащие слово "error" красным, "warning" — жёлтым, а "info" — зелёным. Для этого используйте команду:
    Code
    awk '
    /error/ {print "\033[31m" $0 "\033[39m"}
    /warning/ {print "\033[33m" $0 "\033[39m"}
    /info/ {print "\033[32m" $0 "\033[39m"}
    ' app.log


    В этом примере:
    \033[31m — это ANSI-код для красного цвета;
    \033[33m — для жёлтого;
    \033[32m — для зелёного;
    \033[39m — сброс цвета до стандартного.

    2. Вывести только строки с ключевыми словами
    Если вы хотите игнорировать всё остальное, можно немного модифицировать команду:
    Code
    awk '
    /error/ {print "\033[31m" $0 "\033[39m"}
    /warning/ {print "\033[33m" $0 "\033[39m"}
    /info/ {print "\033[32m" $0 "\033[39m"}
    ' app.log | grep -E "error|warning|info"


    3. Если необходимо искать ключевые слова в режиме реального времени
    Например, из потока вывода docker ****, можно комбинировать с tail -f:
    Code
    tail -f app.log | awk '
    /error/ {print "\033[31m" $0 "\033[39m"}
    /warning/ {print "\033[33m" $0 "\033[39m"}
    /info/ {print "\033[32m" $0 "\033[39m"}
    '



    4. В завершение, можно создать скрипт для регулярного использования:
    Code
    #!/bin/bash
    tail -f $1 | awk '
    /error/ {print "\033[31m" $0 "\033[39m"}
    /warning/ {print "\033[33m" $0 "\033[39m"}
    /info/ {print "\033[32m" $0 "\033[39m"}
    '



    Сохраните его как log_color.sh, сделайте исполняемым (chmod +x log_color.sh), и теперь можно запускать команду так:
    Code
    ./log_color.sh app.log


    Этот подход значительно ускорит анализ *****, делая визуально очевидными ошибки, предупреждения и информацию. Цветной вывод помогает быстро заметить проблемы, даже в больших объёмах *****.
     
    This article was useful for you?
    You can thank the author of the topic by transferring funds to your balance
    Thank the author
  2. onlycash_pay
    onlycash_pay Nov 12, 2024 ФЕРЗЬ FORUM'A 3716 Aug 31, 2020
    Спасибо
     
  3. krutyshkin
    krutyshkin Nov 12, 2024 148 1165 Feb 6, 2019
    авторку
     
    1. APT29388 Topic starter
Top
Loading...