Утилита для перезаписи технологического журнала в удобный для анализа формат (Linux)

04.05.22

Администрирование - Linux

Проводить анализ технологического журнала (далее ТЖ) средствами bash и powershell было бы удобнее, если бы события записывались в одну строку и строго соблюдался единый формат ограничителей содержимого полей. Данная утилита устраняет эти недостатки, благодаря чему станет легче писать скрипты, вы сможете повысить точность анализа ТЖ, избежать пропуска мелких событий.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
norm (в архиве tar.gz):
.gz 9,00Kb ver:1.0.0.1
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Что конкретно делает эта утилита:

  • Перезаписывает файлы технологического журнала в измененном формате;
  • Событие ТЖ целиком укладывает в одну строку, байты CRLF ставятся только в конце события;
  • Тексты всех полей Sql, Context, Txt и т.д. (всего на данный момент 11 полей) строго и безусловно заключаются в двойные кавычки. Полный список обрабатываемых полей можно получить, запустив утилиту без аргументов;
  • Внутри текстов удаляются все переводы строк (CR, LF) и табы. Двойные кавычки и дважды двойные экранирующие внутри текста превращаются в одинарные. Благодаря этому и предыдущему пункту вы сможете значительно упростить регулярные выражения и ускорить их обработку для надежного извлечения полного текста события.
  • Из имен временных таблиц в запросах SQL удаляются числа - это может понадобиться для группировки по тексту для поиска долгих запросов.

Важные особенности:

  • утилита написана для GNU/Linux, но работает и в WSL (тестировалась под WSL Ubuntu);
  • предназначена для обработки больших объемов ТЖ (сотни ГБ, возможно терабайты), поэтому переписывает существующие файлы с сохранением их размера и места; дополнительное место на диске не требуется (при отключении CoW);
  • написана c использованием многопоточной обработки на C, без сторонних библиотек и регулярных выражений, поэтому теоретически выигрывает по скорости у bash-скриптов написанных с использованием perl и grep, но на практике космических скоростей конечно не будет: бутылочным горлышком станет скорость ваших дисков. 100% загрузку CPU вы вряд ли увидите, механические HDD и вовсе уравняют любые методы обработки;
  • не имеет значения, обрабатываете ли вы один большой файл или множество мелких - утилита разбивает весь объём на порции данных, по умолчанию 50 МБ, но можно задать свой размер.

Ввиду необходимости сохранения размера файлов при многопоточной обработке и в связи с возможным отсутствием каких-либо кавычек в исходном ТЖ утилита производит сокращение наименований полей на 2 символа, например Sql= превращается в S=. Возможная недостача размера компенсируется с помощью дополнительных запятых после поля. Полный список полей и их новое сокращенное наименование можно получить, запустив утилиту без аргументов.

Пример использования:

./norm -i data -r 

Число потоков:         6
Путь поиска:           data
Рекурсивный поиск:     да

#########################################################
#########################################################
#########################################################
#########################################################
###############

Время выполнения:      30.087497 сек.
Обработано данных:     10.77 Гб
Скорость обработки:    357.90 Мб/сек

 

Вступайте в нашу телеграмм-группу Инфостарт

технологический журнал тж производительность анализ linux hi load

См. также

HighLoad оптимизация Инструментарий разработчика Технологический журнал Разработчик 1С 8.3 Россия Абонемент ($m)

Скрипт tj_baseline.py собрал акт замеров из технологического журнала: 7 повторов до и 7 после замены запросов в цикле на «Нано-УТ 2.0». Справка на 150 строк ускорилась с 817,0 до 145,0 мс, проверка доступности с 301,3 до 2,2 мс. При 120 и 300 вызовах в день и ставке 800 руб. выгода 9353 руб. в год по журналу, 4939 руб. по секундомеру без журнала. В архивах скрипт, тесты, журналы опыта, образец приложения к договору и калькулятор.

7 стартмани

27.10.2026    226    Ninel_S    0    

1

HighLoad оптимизация Администрирование СУБД Технологический журнал Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Проверила на стенде совет «сортируйте строки перед записью»: 1С 8.3.27 на PostgreSQL, учебная «Нано-УТ», 20 потоков и по 2000 документов на каждый способ записи движений. Взаимоблокировки дают построчный захват (99 % ошибок) и повышение разделяемой блокировки до исключительной (95 %, сортировка не помогает); одна блокировка на весь набор работает без сортировки. Плюс механика PostgreSQL, дерево ожиданий через pg_blocking_pids, TDEADLOCK в журнале и единицы порога TLOCK в logcfg.xml. В архиве стенд, выгрузка конфигурации и журналы прогона.

5 стартмани

22.10.2026    344    Ninel_S    10    

1

Linux Системный администратор 1С:Предприятие 8 Бесплатно (free)

Скрипт bash для корректного обновления серверной части платформы 1С Предприятия (сохраняет и восстанавливает настройки служб, даже если их несколько, изменяет версию платформы во всех веб-публикациях и делает еще много полезных мелочей не включенных в штатный инсталлятор) Иными словами "обновление под ключ" или "нажал и забыл"

21.10.2026    372    capitan    0    

5

Журнал регистрации Инструменты администратора БД Технологический журнал Мониторинг Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Управление торговлей 11 Абонемент ($m)

Расширение для любой конфигурации на БСП: замеры, ошибки, задания, обмены, блокировки, диски, сеансы и техжурнал в одном окне, с уведомлениями в Telegram и на почту.

3 стартмани

19.10.2026    413    6    windsurf    0    

3

HighLoad оптимизация Технологический журнал Сервера Запросы Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Составной отчет формировался 15 минут. Вместо перебора разделов одна команда rac показала, что сеанс занят запросом к СУБД, а временный техжурнал с порогом 20 секунд за один прогон назвал виновника: один SQL на 240 секунд и точную строку модуля. В статье четыре разные картины «висит» и как их различить: идет запрос в СУБД, клиент ждет невидимое модальное окно, зомби-вызов после закрытого клиента, зависшее фоновое задание. Пример logcfg.xml, разбор события DBMSSQL с полем Context, замер пакета запросов по временным таблицам, регламентное задание, которое «выполнено», а данные стоят, и шпаргалка по диагностике.

16.10.2026    1029    Konstmax13    6    

2

Технологический журнал Сервера EDT Обновление 1С Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Конфигуратор и агент EDT тихо вылетают на 0 % «Обработки структуры базы данных», EDT пишет «Потеряно соединение с агентом конфигуратора», а модель проекта при этом чистая. Разбор двух аварий на большой серверной базе БП КОРП: какие факты снимать (журнал Windows, техжурнал нужной версии, хвост лога процесса), почему инкрементальная выгрузка EDT ломается после сбоев, как довести обновление пакетно через /UpdateDBCfg -Server, как опознать свои rphost среди нескольких кластеров и снять агент EDT, который сам поднимается и держит базу. Протокол одного дня по минутам и порядок диагностики из восьми шагов.

15.10.2026    409    Konstmax13    0    

0

DevOps и автоматизация разработки Linux Разработчик 1С 8.3 Абонемент ($m)

Исследуем, почему COPY и последующий rm оставляют установщик в слоях Docker. На Docker Engine 29.8.0 сравнила три сборки с фиктивным дистрибутивом: bind mount и отдельный завершающий этап исключили его слой. В статье — первичные размеры и границы проверки лицензирования 1С; в архиве — воспроизводитель и анализатор inspect/history.

1 стартмани

12.10.2026    346    Ninel_S    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. FreeArcher 164 30.03.22 11:44 Сейчас в теме
Ох, вашу бы утилиту показать 1С-овцам...
2. cdiamond 212 06.04.22 14:20 Сейчас в теме
Им этого не надо, КИП сломается же, переписывать никто не захочет.
Для отправки сообщения требуется регистрация/авторизация