Список ПК из 1cv7.mlg


Обработка умеет получить из журнала регистрации (1cv7.mlg), имена ПК, подключавшиеся к ИБ.

Потребовалось узнать имена ПК, которые подключались к ИБ за все время работы.

Написал обработку, которая получает из файла 1cv7.mlg имена ПК.

Так же есть возможность анализа нескольких файлов 1cv7.mlg, и получение общего списка без задвоений в имени ПК, данная возможность сделана для анализа нескольких ИБ в одной сети. 

НЕ РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ ДЛЯ БОЛЬШИХ ЖУРНАЛОВ РЕГИСТРАЦИИ

Добавил печатную форму, в неё теперь выводятся  имя ПК, время и дата последнего подключения.


15 Comments

  1. Noy

    За

    СоздатьОбъект(«Текст»)

    уже можно «-» ставить.

    гораздо быстрее будет

    find «OpenSession» 1cv7.mlg >comp.csv

    и в екселе потом глянуть результат.

    Reply
  2. dour-dead

    тестировал на файле в 40 метров, обработки выполняется за 15 сек… да и особой производительности мне не требовалось.

    Reply
  3. Noy

    (2) не поленился и проверил…

    файл mlg — 143Мб, 1650000 строк

    dir отработал за 28 секунд (отобрал 23000 строк)

    твоя обработка за 59 минут 57 секунд

    Комп: двухъядерный атлон 2.1 рам 3Гб, винт — ССД (линейное чтение около 250Мб/сек)

    естественно mlg лежит на этом же диске…

    Боюсь представить что у тебя за комп, что 40 МБ за 15 сек обработал

    ЗЫ в результатах отображаются строки, в комментарии которых присутствует слово «компьютер» 🙂

    Reply
  4. Noy

    в дополнение:

    на этой же конфигурации обработка http://infostart.ru/public/18879/ справилась за 80 секунд.

    Так что рекомендую не использовать объект «текст» для парсинга больших файлов.

    Reply
  5. dour-dead

    (3) Noy,

    ну вот, я думал, обработка не кому нужна не будет, а тут уже первые тесты.

    завтра приду на работу скину тебе конфигу компа. и если хочешь сам файл)))

    ну а как ещё определить, какие компы подключались к ИБ? я вот проще метода не нашел… можешь подсказать свои идеи… учту в будущем… а насчёт производительности я тебе уже писал, что такой задачи не было.

    Reply
  6. dour-dead

    (4) Noy, подправил описание к обработки, специально для тебя.

    Reply
  7. Noy

    (5) У меня претензии к производительности и к ошибкам.

    Сама идея хорошая. Только добавь информацию о дате/времени последнего подключения — и вообще будет хорошо.

    Reply
  8. vcv

    Для простого пользователя нормальная обработка.

    Для уважающего себя программера подобные мелкие нужды полезно уметь решать более предназначенными для этого средствами.

    Например, команда командной строки Windows

    for /F «tokens=11 delims=:;» %i in (‘findstr «;E;Sys;OpenSession;» 1cv7.mlg’) do @echo %i >comps.lst

    сохранит в файле comps.lst все имена компьютеров, с которых были подключения в режиме Предприятие.

    Остаётся вывести результат без дубляжей

    sort comps.lst | uniq

    (uniq — портированная с линуксов утилита для отбора из текстового файла неповторяющихся строк)

    Reply
  9. TrinitronOTV

    интересная дискуссия идет, почерпнул новой инфы полезной, спасибо

    Reply
  10. dour-dead

    `(3) Noy, повесил на обработку счётчик времени, которое затрачивается на обработку файла

    сори немного соврал с размером файла, он был 23 метра (строк 209649), время обработки 27 сек.

    так что

    dir отработал за 28 секунд (отобрал 23000 строк)

    это как то совсем не показатель.

    сегодня взял лог с рабочей БД.

    файл 501220 строк время выполнения 118 сек (размер 55 мб)

    машина проц. Intel® Core™ i5-2300 CPU @ 2.80GHz памяти 3gb, винт обычный sataII

    Reply
  11. dour-dead

    (8) vcv, Пожалуйста, объясните подробнее, как этим пользоваться:


    for /F «tokens=11 delims=:;» %i in (‘findstr «;E;Sys;OpenSession;» 1cv7.mlg’) do @echo %i >comps.lst
    Reply
  12. vcv

    (11) Это командная строка Windows.

    Запускаешь сначала командную строку «Пуск / Выполнить» и пишешь cmd

    В открывшейся консоли пишешь команды.

    Что бы понять что и зачем ознакомься с командами

    help

    help for

    help findstr

    Начать можно с википедии: http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D1%8B%D0%B9_%D­1%84%D0%B0%D0%B9%D0%BB

    Воспользоваться командой из (8) можно просто:

    1. Открываешь Блокнот (notepad.exe)

    2. Пишешь текст

    for /F «tokens=11 delims=:;» %%i in (‘findstr «;E;Sys;OpenSession;» 1cv7.mlg’) do @echo %%i >comps.lst

    3. Сохраняешь в папку «SYSLOG» под именем «comps.cmd» (расширение файла должно быть именно «cmd», «txt», которое предложит Блокнот нужно убрать)

    4. Запускаешь из проводника сохранённый файл, он отработает и в папке появится результирующий файл comps.lst

    Reply
  13. dour-dead

    (12) vcv, Спасибо!

    Написал, запускаю, нет ни ошибок, не результата…

    Reply
  14. dour-dead

    (7) Noy,

    Только добавь информацию о дате/времени последнего подключения — и вообще будет хорошо.

    добавил

    Reply
  15. CheBurator

    хочется видеть в отчете входы, по которым не было выходов…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *