Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Парсинг логов с конца и резолвинг того что получилось

Ответить
Настройки темы
PowerShell - [решено] Парсинг логов с конца и резолвинг того что получилось

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Есть изрядная пачка логов (все в одной папке, у всех расширение txt, кроме этих логов больше ничего в папке нету) в одной из последних десяти строк каждого лога есть IP (в какой именно из этих десяти неизвестно, первые два октета во всех логах одинаковые, кроме IP в этой строке может быть разве что несколько пробелов). Вообще можно и все логи и целиком читать, но они здоровые весьма, и IP могут встречаться и ранее, а нужно именно последнее значение.
Нужно выдернуть IP и положить в новый общий лог (например, IP.log) вместе с именем старого лога. Как-то так
Код: Выделить весь код
192.168.1.1 log1
192.168.1.2 log2
Еще нужно спросить у DNS'a все ли нормально отрезолвилось, и те IP, для которых DNS имени не вернул сложить в отдельный лог (например nonameIP.log).
Вроде все описал, если что уточнить нужно - пишите.

Отправлено: 18:03, 05-04-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Elven:
Вообще можно и все логи и целиком читать, »
Вообще, так оно всегда и происходит, поскольку именно так работает последовательный доступ к файлам — построчное чтение от начала файла к концу.


Цитата Elven:
в одной из последних десяти строк »
…и только в одной? А может такое — IP вообще не окажется?

Отправлено: 18:19, 05-04-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Iska, только в одной из. И окажется. Если так уж сильно хочется то можно взять последние двадцать, но нужности нет. В последних 10 строчках будет IP.

Цитата Iska:
построчное чтение от начала файла к концу »
В линуксе можно, учитывая что все знать невозможно - предположил, что аналогичная фича есть в виндах, только я о ней не знаю.

Последний раз редактировалось Elven, 05-04-2018 в 19:13.


Отправлено: 18:44, 05-04-2018 | #3


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Elven, и в линуксе тоже нельзя. Просто вы воспринимаете утилиту tail как волшебство, а по факту она прочитывает файлы от начала и до конца.

В итоге: у вас какие-то конкретные трудности, или это сообщение из ряда: "Сделайте за меня скрипт, а я зарплату за это буду получать"?

Отправлено: 09:44, 06-04-2018 | #4


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
dir *.txt | Foreach {
	$Name = $_.Name
	(gc $_.FullName -Tail 10 -Raw).split() -match "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" | % {"{0}`t{1}" -f $Name,$_}
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:07, 06-04-2018 | #5


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Busla, лишней зарплаты я за это точно не получу. Просто задолбало руками лазить и искать по всем логам то, что нужно найти (поиск по содержимому - в ту же степь).
Kazun, спасибо, отсюда и буду колупать.

Последний раз редактировалось Elven, 06-04-2018 в 10:28.


Отправлено: 10:17, 06-04-2018 | #6


Аватара для Казбек

Ветеран


Сообщения: 5380
Благодарности: 1874

Профиль | Отправить PM | Цитировать


Elven,

Возможно, будет интересно. В это консольной утилиты большие возможности по парсингу различных логов - Log Parser 2.2
Ссылки с примерами:
  1. Using Log Parser to Query Event Log Data
  2. Log Parser examples: Using the free log analysis tool
  3. Log Parser Examples

-------
Кто реку перешел, тому росы бояться ни к чему

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:09, 06-04-2018 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Elven:
В линуксе можно, учитывая что все знать невозможно - предположил, что аналогичная фича есть в виндах, только я о ней не знаю. »
Elven, как верно заметил коллега Busla:
Цитата Busla:
и в линуксе тоже нельзя. »
Чтобы найти десять последних строк — надо прочитать все строки, посчитать их количество и взять десять последних. Ни в какой операционной системе тут отличий нет, поскольку это общий принцип. Именно так работает tail в Unix, её портированные версии в Windows, параметр -Tail в командлете Get-Content PowerShell'а.

Казбек, я тоже первым делом вспомнил про Log Parser, но есть подозрение, что там в логах какая-то не структурированная информация. Так-то, как обычно: «Эх… получить бы образцы»™.

Отправлено: 14:02, 06-04-2018 | #8


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6484
Благодарности: 1463

Профиль | Отправить PM | Цитировать


Слегка через одно место, но работает.
Powershell:
Код: Выделить весь код
$fs = dir C:\Temp\log
foreach ($f in $fs)
{
$c = gc $f.FullName -last 10 | sls "192.168"
$f.Name,$c.Line
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:48, 06-04-2018 | #9


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Казбек, я знаю о существовании логпарсера, но не думаю что применить его в этом случае получится.
Iska, очень сильно не структурированная. Если так уж сильно хочется то вот пример лога, но не думаю, что это сильно поможет.
кусок лога
Код: Выделить весь код
06.04.2018 12:04:45,70 
 10.47.6.112
 192.168.209.1
 192.168.10.1
 00-24-1D-A8-8A-19
 00-50-56-C0-00-01
 00-50-56-C0-00-08
------------
ПОЛЬЗОВАТЕЛЬ          СЕАНС              ID  СТАТУС  БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
 pivanov              console             1  АКТИВНО отсутствует 04.04.2018 9:04
-----------------------------------------------
Интересует адрес начинающийся с 10.47.

Отправлено: 14:49, 06-04-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Парсинг логов с конца и резолвинг того что получилось

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Комп выключается из-за того, что мало ОЗУ. secret99@vk Microsoft Windows 7 18 07-01-2016 10:35
[решено] Подскажите причины того, что монитор не отображает картинку? carloslinux Видеокарты 13 13-03-2013 23:06
DNS/DHCP - DNS резолвинг Denis_ Сетевые технологии 10 29-11-2011 12:47
как сделать скриншот того, что не умещается на экран? illusionmgs Хочу все знать 10 06-04-2010 11:47
XP выключается вместо того что перезагружаться !!! Konect Microsoft Windows 2000/XP 10 27-01-2004 06:19




 
Переход