Обработка умеет получить из журнала регистрации (1cv7.mlg), имена ПК, подключавшиеся к ИБ.
Потребовалось узнать имена ПК, которые подключались к ИБ за все время работы.
Написал обработку, которая получает из файла 1cv7.mlg имена ПК.
Так же есть возможность анализа нескольких файлов 1cv7.mlg, и получение общего списка без задвоений в имени ПК, данная возможность сделана для анализа нескольких ИБ в одной сети.
НЕ РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ ДЛЯ БОЛЬШИХ ЖУРНАЛОВ РЕГИСТРАЦИИ
Добавил печатную форму, в неё теперь выводятся имя ПК, время и дата последнего подключения.





За
уже можно «-» ставить.
гораздо быстрее будет
find «OpenSession» 1cv7.mlg >comp.csv
и в екселе потом глянуть результат.
тестировал на файле в 40 метров, обработки выполняется за 15 сек… да и особой производительности мне не требовалось.
(2) не поленился и проверил…
файл mlg — 143Мб, 1650000 строк
dir отработал за 28 секунд (отобрал 23000 строк)
твоя обработка за 59 минут 57 секунд
Комп: двухъядерный атлон 2.1 рам 3Гб, винт — ССД (линейное чтение около 250Мб/сек)
естественно mlg лежит на этом же диске…
Боюсь представить что у тебя за комп, что 40 МБ за 15 сек обработал
ЗЫ в результатах отображаются строки, в комментарии которых присутствует слово «компьютер» 🙂
в дополнение:
на этой же конфигурации обработка справилась за 80 секунд.
Так что рекомендую не использовать объект «текст» для парсинга больших файлов.
(3) Noy,
ну вот, я думал, обработка не кому нужна не будет, а тут уже первые тесты.
завтра приду на работу скину тебе конфигу компа. и если хочешь сам файл)))
ну а как ещё определить, какие компы подключались к ИБ? я вот проще метода не нашел… можешь подсказать свои идеи… учту в будущем… а насчёт производительности я тебе уже писал, что такой задачи не было.
(4) Noy, подправил описание к обработки, специально для тебя.
(5) У меня претензии к производительности и к ошибкам.
Сама идея хорошая. Только добавь информацию о дате/времени последнего подключения — и вообще будет хорошо.
Для простого пользователя нормальная обработка.
Для уважающего себя программера подобные мелкие нужды полезно уметь решать более предназначенными для этого средствами.
Например, команда командной строки 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 — портированная с линуксов утилита для отбора из текстового файла неповторяющихся строк)
интересная дискуссия идет, почерпнул новой инфы полезной, спасибо
`(3) Noy, повесил на обработку счётчик времени, которое затрачивается на обработку файла
сори немного соврал с размером файла, он был 23 метра (строк 209649), время обработки 27 сек.
так что
это как то совсем не показатель.
сегодня взял лог с рабочей БД.
файл 501220 строк время выполнения 118 сек (размер 55 мб)
машина проц. Intel® Core i5-2300 CPU @ 2.80GHz памяти 3gb, винт обычный sataII
(8) vcv, Пожалуйста, объясните подробнее, как этим пользоваться:
for /F «tokens=11 delims=:;» %i in (‘findstr «;E;Sys;OpenSession;» 1cv7.mlg’) do @echo %i >comps.lst
(11) Это командная строка Windows.
Запускаешь сначала командную строку «Пуск / Выполнить» и пишешь cmd
В открывшейся консоли пишешь команды.
Что бы понять что и зачем ознакомься с командами
help
help for
help findstr
Начать можно с википедии:
Воспользоваться командой из (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
(12) vcv, Спасибо!
Написал, запускаю, нет ни ошибок, не результата…
(7) Noy,
добавил
хочется видеть в отчете входы, по которым не было выходов…