LINUX.ORG.RU

вытаскивание данных с логов и запись в БД


0

0

Теоретическое решение в голове на кучу строк на перле или прости Господи пхп я себе нарисовал, но как говорится вдруг найдется более простой и быстрый вариант.

имеем вводный файл лог мирка за много лет, и событие установки нового дня Session Time в нем есть текущее число, кучу пользователей в этом куске для удобства обозначенных user1, user2 с указанием времени события. события 2 вход и выход.

Session Time: Thu Jun 03 00:00:00 2010
<тут была куча строк не по делу>
14[00:12:33] * user1 [user1@host.local] is on IRC
<тут была куча строк не по делу>
14[00:13:54] * user1 [user1@host.local] has left IRC
<тут была куча строк не по делу>
14[00:14:27] * user2 [user2@host.local] is on IRC
<тут была куча строк не по делу>
14[10:00:13] * user2 [user2@host.local] has left IRC
<тут была куча строк не по делу>
Session Time: Fri Jun 04 00:00:02 2010
<тут была куча строк не по делу>
14[00:09:22] * user1 [user1@host.local] is on IRC
<тут была куча строк не по делу>
14[01:23:13] * user1 [user1@host.local] has left IRC
<тут была куча строк не по делу>
14[01:23:45] * user1 [user1@host.local] is on IRC
<тут была куча строк не по делу>
14[11:08:12] * user1 [user1@host.local] has left IRC
<тут была куча строк не по делу>
Session Time: Sat Jun 05 00:00:01 2010
и так далее... из года в год...

хочется обрабатывать этот файл эпизодически и по каждому пользователю иметь записи:
user|хост|время входа|время выхода|
user1|user1@host.local|2010-06-04 00:09:22|2010-06-04 01:23:13|
user1|user1@host.local|2010-06-04 01:23:45|2010-06-04 11:08:12|

какие варианты решения предложите вы?

Если у тебя не миллион пользователей, то эта задача решается именно на пыхе или на перле. Собственно, они для того и используются, чтобы решать небольшие задачи автоматизации. Отгрепай нужные строки и натрави любовно обдуманный скрипт, в этом нет ничего необычного.

anonymous
()

Вопрос-то в чём? Подтвердить, что на перле это можно (и удобно) написать?

AnDoR ★★★★★
()

Два раза grep, один раз sort.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.