Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: поиск  (Прочитано 1501 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн di4_die

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
поиск
« : 05 Марта 2014, 02:04:06 »
Доброй ночи.

Возникла потребность в поиске и выводе ипишников.

что мне нужно?
Мне нужно найти в логе, а именно в файле "kern.log" (/var/log/kern.log) найти и записать в другой файл уникальные ипишники которые стоят в позиции (так как там много логов на другую тему):
"UDP: short packet: From 92.114.142.145:15087 308/37 to 192.168.0.1:5001".
+
к-во найденых результатов.

Окончательный файл должен иметь вид
5 77.87.38.15
22 77.87.38.8
(первое число - к-во найденых ипишников в логе "kern.log").


делал вот так:
cat /var/log/kern.log | awk '{print $11}' | cut -d: -f1 | sort | uniq -c | sort -n > /home/di4/s.txtполучил:
      9 87.255.14.112
      9 ip
     12 92.114.142.145
     20 79.117.54.63
 750204 MAC=bc
но так как в "kern.log" под 11-ю колонку могут попадать многие результаты (слова, порты тд), текущий способ мне не подошел.
мне бы как-то добавить параметр к поиску "UDP: short packet: From"  :idiot2:
« Последнее редактирование: 05 Марта 2014, 02:05:56 от di4_die »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: поиск
« Ответ #1 : 05 Марта 2014, 02:15:34 »
awk '/^UDP: short packet: From/ {print $11}'?
« Последнее редактирование: 05 Марта 2014, 02:23:04 от Azure »
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн di4_die

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: поиск
« Ответ #2 : 05 Марта 2014, 02:18:04 »
можно в примере?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: поиск
« Ответ #3 : 05 Марта 2014, 02:29:25 »
sed 's/^UDP:short packet:From \([0-9.]\+\):.*/\1/' | sort -nu >
« Последнее редактирование: 05 Марта 2014, 02:31:12 от Azure »
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн di4_die

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: поиск
« Ответ #4 : 05 Марта 2014, 02:46:30 »
sed 's/^UDP:short packet:From \([0-9.]\+\):.*/\1/' | sort -nu >  /home/di4/s.txtничего не добавилось

cat /var/log/kern.log | sed 's/^UDP:short packet:From \([0-9.]\+\):.*/\1/' | sort -nu >  /home/di4/s.txtв файле "s.txt" добавилась первая строка из лога "kern.log"

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: поиск
« Ответ #5 : 05 Марта 2014, 02:55:39 »
В строке "UDP: short packet: From " правильно пробелы расставь
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн di4_die

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: поиск
« Ответ #6 : 05 Марта 2014, 03:04:53 »
полная строка из "kern.log":
Mar  2 10:13:06 server kernel: [448769.648647] UDP: short packet: From 82.146.34.211:3258 152/24 to 192.168.0.1:7011
cat /var/log/kern.log | sed 's/^UDP: short packet: \([0-9.]\+\):.*/\1/' | sort -nu >  /home/di4/s.txtполучил самую первую строку из файла "kern.log".
« Последнее редактирование: 05 Марта 2014, 03:10:37 от di4_die »

Оффлайн zotkindm

  • Старожил
  • *
  • Сообщений: 2452
  • (K)Ub 14.04
    • Просмотр профиля
Re: поиск
« Ответ #7 : 05 Марта 2014, 10:00:47 »
grep UDP: short packet: FromКак-то так, в общем смотри в сторону grep

Оффлайн di4_die

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: поиск
« Ответ #8 : 05 Марта 2014, 12:05:54 »
zotkindm,
я не зря столько буковок оставил в первом посте )

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: поиск
« Ответ #9 : 05 Марта 2014, 17:31:12 »
sed -n 's/.*UDP: short packet: \([0-9.]\+\):.*/\1/p' /var/log/kern.log | sort | uniq -c | sort -n >  /home/di4/s.txt
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн di4_die

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: поиск
« Ответ #10 : 06 Марта 2014, 15:04:34 »
получаю пустой текстовый документ "/home/di4/s.txt"

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: поиск
« Ответ #11 : 06 Марта 2014, 17:05:43 »
Дайте мне 5-6 строчек исходного документа — отстрою скрипт.
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн di4_die

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: поиск
« Ответ #12 : 09 Марта 2014, 19:17:36 »
Давайте я немножко изменю задачу  :P

есть лог
Mar  9 17:04:14 server kernel: [384684.127474] REJECT 5068: IN=eth1 OUT= MAC=bc:5f:f4:7a:db:5f:3c:94:d5:a5:67:c1:08:00 SRC=177.34.239.29 DST=192.168.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=117 ID=2813 PROTO=UDP SPT=64601 DPT=5068 LEN=24

Mar  9 17:04:15 server kernel: [384684.509305] REJECT 5068: IN=eth1 OUT= MAC=bc:5f:f4:7a:db:5f:3c:94:d5:a5:67:c1:08:00 SRC=177.34.239.29 DST=192.168.0.1 LEN=44 TOS=0x00 PREC=0x00 TTL=117 ID=2846 PROTO=UDP SPT=60593 DPT=5068 LEN=24

с текущего куска лога, мне нужно вывести ип (который находится сразу после "SRC=").
такого рода строчек в логе много, и результаты (дата, ип порт и тд) в каждой строке разные (кроме "PROTO=UDP").
« Последнее редактирование: 09 Марта 2014, 19:19:55 от di4_die »

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7215
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: поиск
« Ответ #13 : 09 Марта 2014, 20:41:40 »
di4_die, символов в каждой строке одинаковое количество? Т.е. они все однотипные или исключения есть?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: поиск
« Ответ #14 : 09 Марта 2014, 22:46:41 »
sed 's/.*SRC=\([0-9\.]\+\).*/\1/'
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

 

Страница сгенерирована за 0.025 секунд. Запросов: 21.