Парсинг логов с конца и резолвинг того что получилось
Есть изрядная пачка логов (все в одной папке, у всех расширение txt, кроме этих логов больше ничего в папке нету) в одной из последних десяти строк каждого лога есть IP (в какой именно из этих десяти неизвестно, первые два октета во всех логах одинаковые, кроме IP в этой строке может быть разве что несколько пробелов). Вообще можно и все логи и целиком читать, но они здоровые весьма, и IP могут встречаться и ранее, а нужно именно последнее значение.
Нужно выдернуть IP и положить в новый общий лог (например, IP.log) вместе с именем старого лога. Как-то так Код:
192.168.1.1 log1 Вроде все описал, если что уточнить нужно - пишите. |
Цитата:
Цитата:
|
Iska, только в одной из. И окажется. Если так уж сильно хочется то можно взять последние двадцать, но нужности нет. В последних 10 строчках будет IP.
Цитата:
|
Elven, и в линуксе тоже нельзя. Просто вы воспринимаете утилиту tail как волшебство, а по факту она прочитывает файлы от начала и до конца.
В итоге: у вас какие-то конкретные трудности, или это сообщение из ряда: "Сделайте за меня скрипт, а я зарплату за это буду получать"? |
Код:
dir *.txt | Foreach { |
Busla, лишней зарплаты я за это точно не получу. Просто задолбало руками лазить и искать по всем логам то, что нужно найти (поиск по содержимому - в ту же степь).
Kazun, спасибо, отсюда и буду колупать. |
Elven,
Возможно, будет интересно. В это консольной утилиты большие возможности по парсингу различных логов - Log Parser 2.2 Ссылки с примерами: |
Цитата:
Цитата:
Казбек, я тоже первым делом вспомнил про Log Parser, но есть подозрение, что там в логах какая-то не структурированная информация. Так-то, как обычно: «Эх… получить бы образцы»™. |
Слегка через одно место, но работает.
Powershell: Код:
$fs = dir C:\Temp\log |
Казбек, я знаю о существовании логпарсера, но не думаю что применить его в этом случае получится.
Iska, очень сильно не структурированная. Если так уж сильно хочется то вот пример лога, но не думаю, что это сильно поможет. кусок лога
Код:
06.04.2018 12:04:45,70 |
Elven, конечно, поможет.
1. Я вот, например, вижу по логу, что вопреки сказанному: Скрытый текст
наличествует несколько IP. 2. Позволяет наглядно понять, что работать с ним как с реляционной базой данных (Log Parser, OLEDB Text Driver) не получится. |
Собственно, помимо наколеночных скриптов есть два, на мой взгляд, более правильных пути:
1) Организовать отчёты той софтиной, что генерирует эти логи, если она сама не наколеночная. 2) Поднять какой-нибудь Zabbix, чтобы он смотрел в эти логи и выдавал предупреждения и слал письма в случае обнаружения заданного паттерна. |
DJ Mogarych, наколенная, писаная хз когда и кем, так что концов не собрать. Zabbix и так есть, но о том, что должно получаться нет нужности слать письма, нужно просто формировать отчет периодически по требованию (от нескольких раз в неделю до раза в полгода).
Iska, IP который нужен начинается на 10.47. и он - один. При указании этого всего я несколько некорректно выразился, нужный IP - один, и первые два октета у него всегда одни и те же. Собственно первая часть выполнена, за основу взял то, что предложил Kazun. Код:
dir *.txt | Foreach { |
Получилось как-то так. Может и писано и криво, но работает, меня устраивает.
Код:
$datetime = Get-Date -Format yyyyMMdd_HHMMss |
Цитата:
|
Время: 09:55. |
Время: 09:55.
© OSzone.net 2001-