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], Google Feedfetcher


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

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