BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Сортировка строк...
СообщениеДобавлено: Чт 13 апр, 2017 5:31 pm 
Не в сети

Зарегистрирован: Чт 12 янв, 2017 12:51 pm
Сообщения: 8
Всех приветствую!

Поставили задачу: обработка логов с Cisco ASA 5512, на предмет подключения юзеров по anyconnect.
Лог имеет вид:
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-305011 Built dynamic UDP translation from inside:192.168.3.198/42389 to outside:хх.хх.хх.хх/33018
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-302015 Built outbound UDP connection 146932579 for outside:хх.хх.хх.хх/161 (хх.хх.хх.хх/161) to inside:192.168.3.198/42389 (хх.хх.хх.хх/33018)
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-305011 Built dynamic UDP translation from inside:192.168.3.198/33621 to outside:хх.хх.хх.хх/61503
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-302015 Built outbound UDP connection 146932580 for outside:хх.хх.хх.хх/161 (хх.хх.хх.хх/161) to inside:192.168.3.198/33621 (хх.хх.хх.хх/61503)
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-302020 Built outbound ICMP connection for faddr хх.хх.хх.хх/0 gaddr хх.хх.хх.хх/11201 laddr 192.168.3.198/2370
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-302021 Teardown ICMP connection for faddr хх.хх.хх.хх/0 gaddr хх.хх.хх.хх/11201 laddr 192.168.3.198/2370
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-302020 Built outbound ICMP connection for faddr хх.хх.хх.хх/0 gaddr хх.хх.хх.хх/11201 laddr 192.168.3.198/2370
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-302021 Teardown ICMP connection for faddr хх.хх.хх.хх/0 gaddr хх.хх.хх.хх/11201 laddr 192.168.3.198/2370
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-302020 Built outbound ICMP connection for faddr 192.168.4.160/0 gaddr 192.168.3.198/2370 laddr 192.168.3.198/2370
192.168.3.3 Apr 12 00:00:02 local4 info :%ASA-session-6-302021 Teardown ICMP connection for faddr 192.168.4.160/0 gaddr 192.168.3.198/2370 laddr 192.168.3.198/2370

Написал скрипт:
#!/bin/sh
cat syslog1 | grep 'anyconnect' | grep 'ASA-4-113019' | awk -F" " '{ print $4 " " $13 " " $16 " " $23 }' > log
cat syslog1 | grep 'anyconnect' | grep 'ASA-svc-7-722030' | awk -F" " '{ print $4 " " $11 " " $13 " " $17 " " $18 }' >> log
cat syslog1 | grep 'anyconnect' | grep 'ASA-svc-7-722031' | awk -F" " '{ print $4 " " $11 " " $13 " " $17 " " $18 }' >> log
cat log

В выхлопе получаем это:(время отключения, юзер, его ип, продолжительность сеанса, и далее вх и исх трафик)
00:05:12 user1, хх.хх.хх.хх, 4h:52m:01s,
07:18:06 user2, хх.хх.хх.хх, 0h:32m:57s,
00:07:13 <user1> <хх.хх.хх.хх> In: 1460080
07:18:27 <user2> <хх.хх.хх.хх> In: 456553
00:07:13 <user1> <хх.хх.хх.хх> Out: 38465414
07:18:27 <user2> <хх.хх.хх.хх> Out: 1660735


И вроде все хорошо, задачу выполнил. Но Потребовали это все предоставить в log.xls :shock: !
Все бы ничего ~5 юзеров если, но их 20, и подключаются по 10 раз на дню!!!!
Руками копипастить надоело, решил в mysql все затолкать.
Получилось это:

#!/bin/sh

cat syslog1 | grep "user*" | grep ":%ASA-auth-6-113012" | awk -F" " '{ print $2 " " $3 " " $4 " " $18 }' > user*
cat syslog1 | grep 'anyconnect' | grep "user*" | grep 'ASA-4-113019' | awk -F" " '{ print $2 " " $3 " " $4 " " $13 " " $23 " " $16 }' >> user*
cat syslog1 | grep 'anyconnect' | grep 'ASA-svc-7-722030' | grep "user*" | awk -F" " '{ print $2 " " $3 " " $4 " " $11 " " $18 }' >> user*
cat syslog1 | grep 'anyconnect' | grep 'ASA-svc-7-722031' | grep "user*" | awk -F" " '{ print $2 " " $3 " " $4 " " $11 " " $18 }' >> user*
sort -u user* > user*1
cat user*1 | xargs -n 20 > user*2
cat user*2 | awk -F" " '{ print $1 " " $2 " " $4 " " $10 " " $3 " " $7 " " $9 " " $15 " " $20 }' > user*3

mysql -u root -pcbcntvybr << EOF
use Cisco_VPN_Log;
LOAD DATA INFILE '/roott/2017-01-11/user*3' INTO TABLE Log FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' (@col1,@col2,@col4,@col10,@col3,@col7,@col9,@col15,@col20) set Month=@col1,Day=@col2,User=@col4,IP=@col10,StartSession=@col3,StopSession=@col7,Longs=@col9,ByteIn=@col15,ByteOut=@col20;

EOF


В выхлопе в mysql это:

Month Day User IP StartSession StopSession Longs ByteIn ByteOut
Apr 12 user хх.хх.хх.хх, 06:45:08 07:18:06 0h:32m:57s, 1660735 456553

Но это при условии если на этапе "sort -u user* > user*1" строки распологаются вот так:

Apr 08 19:41:28 User
Apr 09 00:26:43 User, 4h:45m:13s, 212.164.208.64,
Apr 09 00:28:43 <User> 1927761
Apr 09 00:28:43 <User> 9087793


Но sort как то как захочет так и отсортирует:

Apr 08 19:41:28 User
Apr 09 00:28:43 <User> 1927761
Apr 09 00:28:43 <User> 9087793
Apr 09 00:26:43 User, 4h:45m:13s, 212.164.208.64,


И в mysql примерно такая картина:

Month Day User IP StartSession StopSession Longs ByteIn ByteOut
Apr 12 user Apr 20:00:45 20:38:05 2686900 0 37193

Опытным путем выяснил что это из-за времени "09 00:28:43", в трех строка одно и то же. Потому и тусует их рандомно(хотя не совсем рандомно, еще не понял как).

Собственно вопрос, КАК его заставить сортировать как надо?


P.S. Пробовал сортировать с разными опциями, то же самое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Чт 13 апр, 2017 5:43 pm 
Не в сети

Зарегистрирован: Чт 12 янв, 2017 12:51 pm
Сообщения: 8
Еще добавлю.
Точнее поправлюсь:
при таком времени все норм:

Apr 10 16:36:36 user
Apr 10 16:38:23 user, 0h:01m:46s, xx.xx.xx.xx,
Apr 10 16:40:08 <user> 171381
Apr 10 16:40:08 <user> 43200


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Чт 13 апр, 2017 7:44 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5100
Откуда: Москва
Мало чего понял. Вы выгребаете из mysql записи и они идут не в том порядке в котором записывались? Так и должно быть. Используйте сортировку в select. Перед запихиванием в mysql сортировать не имеет смысла.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Пт 14 апр, 2017 5:47 am 
Не в сети

Зарегистрирован: Чт 12 янв, 2017 12:51 pm
Сообщения: 8
Нет. Сортирую перед тем как в sql данные положить, т.е. надо что бы в строке был определенный прядок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Пт 14 апр, 2017 3:59 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5100
Откуда: Москва
В какой ещё строке? И покажите как выгребаете из mysql.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Пт 14 апр, 2017 5:36 pm 
Не в сети

Зарегистрирован: Чт 12 янв, 2017 12:51 pm
Сообщения: 8
Я конечно извиняюсь, что если как то не понятно расписал первый пост....

В общем я делаю теми скриптами(может трудно назвать то скриптами то что в первом посту, но, по другому пока не умею) выборку из файла лога, тех значений что мне надо.

А именно в конечном результате что бы из этого:

Apr 13 06:43:19 user
Apr 13 19:28:14 user
Apr 12 06:45:08 user
Apr 12 20:00:45 user
Apr 13 07:15:42 user, 0h:32m:23s, xx.xx.xx.xx,
Apr 13 20:10:15 user, 0h:42m:00s, xx.xx.xx.xx,
Apr 12 07:18:06 user, 0h:32m:57s, xx.xx.xx.xx,
Apr 12 20:38:05 user, 0h:37m:20s, xx.xx.xx.xx,
Apr 13 07:16:34 <user> 835751
Apr 13 20:12:02 <user> 1143953
Apr 12 07:18:27 <user> 456553
Apr 12 20:38:05 <user> 384085
Apr 13 07:16:34 <user> 6318432
Apr 13 20:12:02 <user> 7720366
Apr 12 07:18:27 <user> 1660735
Apr 12 20:38:05 <user> 2686900


получилось это:

Apr 12 06:45:08 user
Apr 12 07:18:06 user, 0h:32m:57s, xx.xx.xx.xx,
Apr 12 07:18:27 <user> 1660735
Apr 12 07:18:27 <user> 456553
Apr 12 20:00:45 user
Apr 12 20:38:05 user, 0h:37m:20s, xx.xx.xx.xx,
Apr 12 20:38:05 <user> 2686900
Apr 12 20:38:05 <user> 384085
Apr 13 06:43:19 user
Apr 13 07:15:42 user, 0h:32m:23s, xx.xx.xx.xx,
Apr 13 07:16:34 <user> 6318432
Apr 13 07:16:34 <user> 835751
Apr 13 19:28:14 user
Apr 13 20:10:15 user, 0h:42m:00s, xx.xx.xx.xx,
Apr 13 20:12:02 <user> 1143953
Apr 13 20:12:02 <user> 7720366


Но команда sort это делает это так:

Apr 12 06:45:08 user
Apr 12 07:18:06 user, 0h:32m:57s, xx.xx.xx.xx,
Apr 12 07:18:27 <user> 1660735
Apr 12 07:18:27 <user> 456553
Apr 12 20:00:45 user
Apr 12 20:38:05 <user> 2686900
Apr 12 20:38:05 <user> 384085
Apr 12 20:38:05 user, 0h:37m:20s, xx.xx.xx.xx,
Apr 13 06:43:19 user
Apr 13 07:15:42 user, 0h:32m:23s, xx.xx.xx.xx,
Apr 13 07:16:34 <user> 6318432
Apr 13 07:16:34 <user> 835751
Apr 13 19:28:14 user
Apr 13 20:10:15 user, 0h:42m:00s, xx.xx.xx.xx,
Apr 13 20:12:02 <user> 1143953
Apr 13 20:12:02 <user> 7720366

Т.е. строку где ИП и временем 20:38:05 ставит ниже показателей по трафику.
Что в итоге после команды xargs имеет вид:

Apr 12 06:45:08 user Apr 12 07:18:06 user, 0h:32m:57s, xx.xx.xx.xx, Apr 12 07:18:27 <user> 1660735 Apr 12 07:18:27 <user> 456553
Apr 12 20:00:45 user Apr 12 20:38:05 <user> 2686900 Apr 12 20:38:05 <user> 384085 Apr 12 20:38:05 user, 0h:37m:20s, xx.xx.xx.xx,
Apr 13 06:43:19 user Apr 13 07:15:42 user, 0h:32m:23s, xx.xx.xx.xx, Apr 13 07:16:34 <user> 6318432 Apr 13 07:16:34 <user> 835751
Apr 13 19:28:14 user Apr 13 20:10:15 user, 0h:42m:00s, xx.xx.xx.xx, Apr 13 20:12:02 <user> 1143953 Apr 13 20:12:02 <user> 7720366

т.е. вторая строка имеет не правильны вид.
Поэтому в sql падают не те поля.

P.S. Я ложу данные в sql. Выбирать не надо. Для этого phpMyAdmin есть, из него то и хочу репорты в *.xls делать.
Может есть еще что нить кроме sort?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Пт 14 апр, 2017 6:05 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3261
Откуда: Харьков
я так и не понял, ЧТО нужно получить и из ЧЕГО ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Пт 14 апр, 2017 6:37 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5100
Откуда: Москва
Ну да, sort сортирует, именно это он и делает, "<user" идёт раньше "user".

В рамках sort есть как минимум два решения, добавлять дополнительное поле:

Код:
Apr 12 20:38:05 1 user, 0h:37m:20s, xx.xx.xx.xx,
Apr 12 20:38:05 2 <user> 2686900
Apr 12 20:38:05 2 <user> 384085


или использовать стабильную сортировку ограничив ключи временем (sort -s -k 1,3). На самом деле у вас ещё неправильно сортируются месяцы, так Apr < Mar поэтому апрель будет идти раньше марта. Решается чем-то типа sort -s -k 1M -k 2,3


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Пт 14 апр, 2017 7:29 pm 
Не в сети

Зарегистрирован: Вт 18 сен, 2007 10:26 am
Сообщения: 841
Откуда: СССР, Красноярск
Зачем сортировать данные, которые заливаются в БД?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Пт 14 апр, 2017 7:38 pm 
Не в сети

Зарегистрирован: Чт 12 янв, 2017 12:51 pm
Сообщения: 8
AMDmi3 писал(а):
Ну да, sort сортирует, именно это он и делает, "<user" идёт раньше "user".

В рамках sort есть как минимум два решения, добавлять дополнительное поле:

Код:
Apr 12 20:38:05 1 user, 0h:37m:20s, xx.xx.xx.xx,
Apr 12 20:38:05 2 <user> 2686900
Apr 12 20:38:05 2 <user> 384085


или использовать стабильную сортировку ограничив ключи временем (sort -s -k 1,3). На самом деле у вас ещё неправильно сортируются месяцы, так Apr < Mar поэтому апрель будет идти раньше марта. Решается чем-то типа sort -s -k 1M -k 2,3




Cпасибо большое!

Вот именно это "sort -s -k 1,3" помогло!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сортировка строк...
СообщениеДобавлено: Пт 14 апр, 2017 7:41 pm 
Не в сети

Зарегистрирован: Чт 12 янв, 2017 12:51 pm
Сообщения: 8
Думаю вопрос закрыт.
Дальше сам.
Спасибо!!!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Majestic-12 [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика