


              ▒▒▓▓██▓▓┐       ██┐  ▒░┐ ▒▓▓█┐ ▓▒▒░░▒▒┐ ██▓▓▒▒░░┐
              └──██┌──┘       █▓│  ░░│ └▓█┌┘ ▒▒┌────┘ └──▒▒┌──┘
                 █▓│  ░░▒▒▓▓┐ ▓▓▒▒░░▒│  ██│  ▒░░▒▒▓▓┐    ▒░│
                 ▓▓│  └─────┘ ▓▒┌──▒▒│  █▓│  └────▓█│    ░░│
                 ▓▒│          ▒▒│  ▒▓│  ▓▓│       ██│    ░▒│
                 ▒▒│          ▒░│  ▓▓│ ▓▓▒▒┐ ▒▒▓▓██▓│    ▒▒│
                 └─┘          └─┘  └─┘ └───┘ └──────┘    └─┘

                              History Utility

                                    for

     T-Mail, BinkD, Argus, The Brake!, Bink/+, FhMail, DVMmail, KittenMail,
          BinkleyTerm-XE, FrontDoor, InternetRex, X-Mail32, BasicMail

                        NT, OS/2 and DOS executables

                             Version 0.30.alpha7

    (c) 2003 by Michael Markowsky (klug), 2:5020/378@fidonet (KLUG's BBS)


                                 Hазначение
                                 ==========

  Утилита T-Hist предназначена для построения графика загрузки узла (для одной
линии или суммарного  для нескольких линий)  за указанный интервал  суток  для
указанных адресов  (групп адресов).  Информацию  о  загрузке  T-Hist  берет из
файлов истории (бинарных логов).  T-Hist поддерживает  форматы  бинарных логов
следующих мейлеров: T-Mail, BinkD, Argus, The Brake!, Bink/+, FhMail, DVMmail,
KittenMail,  BinkleyTerm-XE,   FrontDoor,  InternetRex,  X-Mail32,  BasicMail.
Помимо графиков T-Hist формирует таблицы со статистикой по сессиям и линкам.

  T-Mail,  BinkD,  Argus,  The Brake!,  Bink/+,  FhMail,  DVMmail, KittenMail,
BinkleyTerm-XE, FrontDoor, InternetRex, X-Mail32, BasicMail при  своей работе
создают  и  постоянно  обновляют  файлы истории  (бинарные логи),  содержащие
статистику о прошедших сессиях. В этих файлах  для  каждого адреса, с которым
была   сессия,   содержится   информация   о   времени   начала   сессии,  ее
продолжительности и объеме переданного и принятого траффика за сессию. (Далее
термины 'файл истории' и 'бинарный лог' используются наравне).

  Для  T-Mail  файлы  истории  (бинарные  логи)  располагаются  в  директории,
определенной  переменной  Sys_Path  в t-mail.ctl,  и имеют имя t-hist.$##, где
## - шестнадцатиричный номер линии. Для однолинейной системы этот  файл  имеет
имя  t-hist.$01,  для  нескольких  линий  создаются  несколько  таких  файлов,
последние два символа расширения в имени которых равны номеру линии.

  При использовании  T-Hist следует  учитывать то,  что при  завершении работы
мейлера файл истории может обрезаться.  (T-Mail версии до 2599.E обрезает  его
до 100 последних сессий, начиная с версии 2599.E  -  до 1000).  При достаточно
большом числе сессий может оказаться так,  что  после выхода из мейлера в этом
файле уже нет полной информации  о сессиях за интересующий Вас период времени.
Поэтому если Ваш узел работает достаточное интенсивно,  а на узле стоит T-Mail
версии до 2599.E,  и  Вы периодически  выходите из мейлера,  то для  получения
достоверных  результатов  T-Hist  желательно  запускать  до завершения  работы
T-Mail  (например, через Exec,  либо в другом окне  при наличии мультизадачной
системы).

  Результатом   работы   T-Hist   являются  три  файла:   файл  с  графиком  и
гистограммами,  файл  с  таблицей  статистики  по  сессиям  и  файл с таблицей
статистики по линкам.


                               Пример графика
                               ==============

(прообразом оформления графиков послужила bink/+ links statistics utility
by Mikel Lavrentyev).

===============================================================================

              22  23   0   1   2   3   4   5   6   7   8   9  10
               ├─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┤Ses  Rcvd  Sent
2:5020/378.2   │   │   │   │   │   ▐▌  ▌▐  ▐   │   │   │   │   │  4     0  1.3M
2:5020/378.4   │   │   │   │█▐ │█  │ ▌ │   │   │   │   │   │   │  5   591  1.2M
2:5020/378.8   │   │   │   │  ▌│   │   │ ▌ │   ▐   │   │   │   │  3    1k  635k
2:5020/378.11  │   │   │   │   │   │  ▌▌   │   │   │   │   │   │  2     0   30k
2:5020/378.12  │   │   │█▌▐▌   │  ▌▌   │   │   │ ▐▌│   │   │   │  9     0  1.8M
[...]
2:5020/655.0   │ ▌▐│▐ ▐│█  │  ▌│   │   │▌ ▐│   │   │   │ ▌ │  ▐│ 12  106k   21k
2:5020/753.6   │   │   │   │   │ ▌▐│▐  │   │   │   │   │   │   │  3    39  666k
2:5020/1051.0  │   │   │   │ ▌ │   │ ▐ │   │   │   │   │   │   │  2     0    1k
2:469/*.*      │   │   │   │   │   │  ▐│   │   │   │   │   │   │  1     0  129k
               └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

                                 Group History

              22  23   0   1   2   3   4   5   6   7   8   9  10
               ├─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┤Ses  Rcvd  Sent
2:5020/378.#   │   │  ▌▐██▐▌██▌│█▌▌██▌▌▌▐█▌█▐  ▐ ▐▌│   │   │   │ 40    5k 10.0M
2:5020/#.#     ▐▌▌▐▐█▌█▌█ ▌▐██▌█ █▐│█▐ ▐████▌▌ │ ▐ │ ▐▌▐ █ │  ▐│ 70  2.6M  2.1M
2:#/*.*        │   │   │   │   │   │  ▐│   │   │   │   │   │   │  1     0  129k
               └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘

                                 Busy Histogram
           100%┬                                                  Rcvd:    2.6M
               │       ▐ ▐▐▌    ▐  ▐                              Sent:   12.2M
   Sessions    │       ▐ ▐▐▌    ▐  █              ▌               ─────────────
               │       ▐▐▐▐▌▌   ▐  █       █      ▌               Average
 Total:   111  │       ▐██▐▌▌ ▌ ▐ ▐█ ▌     █     ▐▌               CPS:     1311
 ────────────  │       ▐██▐▌█ ▌ ▐▌▐█▐▌ ▐   █     ▐▌               ─────────────
 In:       49  │   ▐   ▐███▌█ ▌▌█▌▐██▌ ▐   █     ▐▌               Time Online:
 Out:      62  │   ▐   ▐█████ ▌██▌███▌▌▐   █     ▐▌    ▐                3:18:46
 ────────────  │   ▐   ▐█████▐███████▌██ ▐▌█   ▐ ▐▌    ▐          ─────────────
 Aborted:   9  │   ▐▌▌▌██████████████▌██████   ▐ ▐█    ▐          In:   2:49:31
 Protect:  98  ▐▌▌▐▐█▌██████████████████████▐▌ ▐ ▐█    ▐ ▄    ▐   Out:  0:29:15
             0%┼─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐  ─────────────
              22  23   0   1   2   3   4   5   6   7   8   9  10  Usage:    27%

┌──────────────────────────┬───────────────────────┬──────────────────────────┐
│ Total Received :    2.6M │ Total Sessions :  111 │ Time Online :    3:18:46 │
│ Total Sent     :   12.2M │ Average CPS    : 1311 │ Time In     :    2:49:31 │
│ Total Traffic  :   14.8M │ Usage          :  27% │ Time Out    :    0:29:15 │
└──────────────────────────┴───────────────────────┴──────────────────────────┘
===============================================================================

  После  графика  загрузки  узла   T-Hist  может  строить  гистограмму   общей
загрузки, а также  гистограммы по входным,  выходным, парольным и  непарольным
сессиям. Наличие или  отсутствие той или  иной гистограммы может  определяется
для  всех  линий  или  для  каждой  линии  индивидуально  с  помощью параметра
BusyHist в файле конфигурации. Поскольку версии T-Mail до 2603 не сохраняли  в
файле истории данных о запароленности сессий,  то для T-Mail до 2603 не  будут
строиться  гистограммы  по  парольным/непарольным  сессиям,  а  для  остальных
гистограмм вместо данных о запароленности будет выводиться 'N/A'.  То же самое
касается BinkD, The Brake!, Bink/+ и FhMail.

  Средний  CPS  считается  как  сумма  полученного  и  переданного  траффика в
байтах, деленная на суммарную продолжительность всех сессий в секундах (за ис-
ключением сессий с нулевым траффиком).

  Процент загрузки линии вычисляется следующим образом:

               суммарная продолжительность всех сессий
               --------------------------------------- * 100%.
                    интервал времени работы линии

Для  binkd,  который  способен  проводить  одновременно  несколько  входящих и
исходящих сессий, процент загрузки линии вычисляется по следующей формуле:

               суммарная продолжительность всех сессий
               --------------------------------------- * 100%,
                  N * интервал времени работы линии

где N - число одновременно проводимых  binkd  входящих и исходящих сессий (см.
описание линии binkd в конфигурационном файле).

  В завершении статистики T-Hist  выводит суммарную информацию по полученному,
переданному  и  общему  траффику,  числу  входящих,  исходящих  и всех сессий,
суммарной продолжительности входящих, исходящих и всех сессий.  Если  строился
суммарный график для нескольких линий, то значения cуммируются по всем линиям.
Кроме того, если обрабатываются бинарные логи мейлеров, сохраняющих информацию
о запароленности  сессий  (например, T-Mail от 2603 и выше),  может выводиться
суммарная информация по парольным/непарольным сессиям.


                    Продолжительность интервалов времени
                    ====================================

  Интервал времени, для которого строится график загрузки, задается с  помощью
параметра Time в файле конфигурации. Однако интервал времени, изображенный  на
графике  может  быть  больше,  чем  было  задано.  Соответствие   длительности
заданного интервала с изображенным на графике следующая:

         ┌─────────────────────────────┬──────────────────────────┐
         │ Длительность интервала (X), │ Длительность  интервала, │
         │ заданного параметром Time   │ изображенного на графике │
         │          (в часах)          │        (в часах)         │
         ├─────────────────────────────┼──────────────────────────┤
         │         0 < X <=  1         │             1            │
         │         1 < X <=  2         │             2            │
         │         2 < X <=  3         │             3            │
         │         3 < X <=  4         │             4            │
         │         4 < X <=  6         │             6            │
         │         6 < X <=  8         │             8            │
         │         8 < X <= 12         │            12            │
         │        12 < X <= 16         │            16            │
         │        16 < X <= 24         │            24            │
         └─────────────────────────────┴──────────────────────────┘

  Длительность интервала (в часах),  изображенного на графике, всегда является
делителем 48.


                               Пример таблиц
                               =============

===============================================================================
╔═══════════════╤═══════════════════════╤══════════╤═════════════════╤════════╗
║    Session    │Dir   Address     Prot │   Time   │     Traffic     │   CPS  ║
║ start   stop  │                  Abort│  Online  │  Rcvd     Sent  │        ║
╠═══════════════╪═══════════════════════╪══════════╪════════╤════════╪════════╣
║ 22:17 - 22:17 │ o  2:5020/921.0    p  │  0:00:11 │     2k │      0 │    207 ║
║ 22:28 - 22:30 │ o  2:5020/423.0    p  │  0:01:47 │   266k │      0 │   2550 ║
║ 22:33 - 22:33 │ o  2:5020/371.0    p  │  0:00:09 │      0 │    971 │    107 ║
║ 22:43 - 22:43 │ o  2:5020/157.0    p  │  0:00:25 │      0 │      0 │      0 ║
[...]
║ 08:40 - 08:42 │ o  2:5020/423.0    pa │  0:02:10 │    12k │      0 │     98 ║
║ 08:46 - 08:47 │ o  2:5020/423.0    p  │  0:01:06 │   150k │      0 │   2335 ║
║ 08:54 - 08:55 │ o  2:5020/921.0    p  │  0:00:25 │      0 │      0 │      0 ║
║ 09:01 - 09:01 │ o  2:5020/157.0    p  │  0:00:12 │      0 │      0 │      0 ║
║ 09:05 - 09:05 │ o  2:5020/921.0    p  │  0:00:06 │      0 │      0 │      0 ║
╟───────────────┴───────────────────────┼──────────┼────────┼────────┼────────╢
║   Total:  97    In:  34    Out:  63   │  2:07:48 │   2.4M │   7.5M │   1448 ║
╚═══════════════════════════════════════╧══════════╧════════╧════════╧════════╝

╔════════════════╦═══════════════════════════╦══════════╦═════════════╦═══════╗
║                ║      Sessions/Online      ║   Time   ║   Traffic   ║       ║
║     Address    ╠═════════════╦═════════════╣  online  ╠══════╦══════╣  CPS  ║
║                ║   Incoming  ║   Outgoing  ║          ║ Rcvd ║ Sent ║       ║
╠════════════════╬═══╤═════════╬═══╤═════════╬══════════╬══════╬══════╬═══════╣
║ 2:5020/378.2   ║  5│ 0:04:57 ║  -│ -:--:-- ║  0:04:57 ║    8k║  304k║  1195 ║
║ 2:5020/378.4   ║  1│ 0:10:44 ║  -│ -:--:-- ║  0:10:44 ║     0║  1.3M║  2220 ║
║ 2:5020/378.11  ║  1│ 0:04:05 ║  -│ -:--:-- ║  0:04:05 ║   720║  364k║  1527 ║
[...]
║ 2:5020/655.0   ║  1│ 0:00:30 ║  4│ 0:01:45 ║  0:02:15 ║    2k║    5k║    84 ║
║ 2:5020/921.0   ║  -│ -:--:-- ║ 17│ 0:04:39 ║  0:04:39 ║   18k║   12k║   132 ║
║ 2:5020/1051.0  ║  2│ 0:08:05 ║  -│ -:--:-- ║  0:08:05 ║     0║ 1011k║  2135 ║
╚════════════════╩═══╧═════════╩═══╧═════════╩══════════╩══════╩══════╩═══════╝
===============================================================================



                      Конфигурационный файл T-HIST.CTL
                      ================================

;========================= T-HIST control file ===============================
;
; Файл конфигурации T-Hist состоит из секций [COMMON] и [LINE].
; В секции [COMMON] задаются параметры, общие для всех линий, по которым
; строится статистика. В секции [LINE] задаются параметры, индивидуальные для
; каждой линии. Каждая новая директива [LINE] начинает описание новой линии,
; каждая новая директива [COMMON] продолжает описание общих параметров.
;
; Параметры History и Name можно использовать только в секции [LINE].
; Параметры BusyHist, CutHistory, TimeShift, AdvancedCPS, SwapInOut можно
; использовать как в секции [LINE], так и в [COMMON]. Все остальные параметры
; можно использовать только в секции [COMMON].
;
; Если параметр допускается использовать и в секции [COMMON], и в [LINE],
; то значение этого параметра, описанное в секции [COMMON], применяется к тем
; линиям, для которых этот параметр не указан в секции [LINE].
;

[COMMON]                ; Начало описания общих параметров

; SupportNewFormat Yes
;                       Hачиная с версии T-Mail 2603 формат файлов t-hist.$##
;                       изменился. С помощью параметра SupportNewFormat можно
;                       разрешить или запретить поддержку нового формата, а
;                       также поддержку форматов других мейлеров.
;
;                       SupportNewFormat No  - новый формат не поддерживается,
;                                              а также не поддерживаются
;                                              форматы других мейлеров.
;                       SupportNewFormat Yes - поддерживаются новый и старый
;                                              форматы и форматы других
;                                              мейлеров.
;
;                       Значение по умолчанию - SupportNewFormat Yes
;
;

; Output t-hist.out
;                       Имя выходного файла статистики
;                       Значение по умолчанию - T-HIST.OUT
;
;                       В параметре 'Output' в имени выходного файла статистики
;                       можно использовать макросы %y, %m, %d, %w, %n.
;                       При создании выходного файла T-Hist заменит эти макросы
;                       на текущий:
;                        %y - номер года (четырехзначный);
;                        %m - номер месяца (01-12);
;                        %d - номер дня в месяце (01-31);
;                        %w - номер дня в неделе (1-7);
;                        %n - номер дня в году (001-366).
;                       Если имя выходного файла должно содержать символ '%',
;                       то используйте %% при задании имени.
;                       Версия T-Hist под DOS после раскрытия макросов будет
;                       обрезать имя файла до формата 8.3. Версии под NT и OS/2
;                       поддерживают длинные имена.
;
;                       Примеры (для 31.08.1998, понедельник):
;                       ;------------------------
;                        Output t-hist%m.%d      ; Выходной файл: t-hist08.31
;                        Output hist%y.%n        ; Выходной файл: hist1998.243
;                        Output %%_%y_%m_%d.%w_%n
;                               ; Выходной файл (NT, OS/2): %_1998_08_31.1_243
;                               ; Выходной файл (DOS): %_1998_0.1_2
;                       ;------------------------
;
;                       Если в параметре 'Output' перед именем выходного файла
;                       статистики поставить модификатор '+', то выходной файл
;                       будет не перезаписываться, а добавляться.
;
;

; LinkStat t-hist.lnk
;                       Имя выходного файла статистики по линкам
;                       Значение по умолчанию - T-HIST.LNK
;
;                       Формат параметра 'LinkStat' полностью совпадает
;                       с форматом параметра 'Output'
;
;                       Если статистика по линкам не нужна, то можно
;                       прописать 'LinkStat nul'
;
;

; SessionStat t-hist.ses
;                       Имя выходного файла статистики по сессиям
;                       Значение по умолчанию - T-HIST.SES
;
;                       Формат параметра 'SessionStat' полностью совпадает
;                       с форматом параметра 'Output'
;
;                       Если статистика по сессиям не нужна, то можно
;                       прописать 'SessionStat nul'
;
;

; Time 0-8
;                       Параметр Time <XX:XX:XX-YY:YY:YY> определяет интервал
;                       времени, для которого строится статистика.
;
;                       Интервал задается с точностью до секунды временем
;                       начала (XX:XX:XX) и временем завершения (YY:YY:YY)
;                       интервала, разделенных знаком '-'.
;
;                       Если время начала больше либо равно времени завершения
;                       (XX:XX:XX >= YY:YY:YY), то статистика строится
;                       начиная со времени XX:XX:XX предыдущих и заканчивая
;                       временем YY:YY:YY текущих суток.
;
;                       Примеры:
;                       Time 0:30:00-7:59:59
;                       Time 0:30-7:30     ; эквивалентно Time 0:30:00-7:30:00
;                       Time 0-8           ; эквивалентно Time 0:00:00-8:00:00
;                       Time :30-7::59     ; эквивалентно Time 0:30:00-7:00:59
;                       Time -8            ; эквивалентно Time 0:00:00-8:00:00
;                       Time 1-            ; эквивалентно Time 1:00:00-23:59:59
;                       Time -             ; эквивалентно Time 0:00:00-23:59:59
;                       Time 23:30-7:30    ; статистика начинается со 23:30
;                                          ; предыдущих суток и заканчивается
;                                          ; в 7:30 текущих суток
;                       Time 22-22         ; статистика начинается со 22:00
;                                          ; предыдущих суток и заканчивается
;                                          ; в 22:00 текущих суток
;                       Time 0-0           ; эквивалентно Time 0:00:00-23:59:59
;                       Time 0-24          ; эквивалентно Time 0:00:00-23:59:59
;
;                       Значение по умолчанию - Time 0:00:00-23:59:59
;                       (полные сутки).
;
;                       Замечание 1. Длина графика в выводимой статистике и
;                       оцифровка временной оси всегда задается с точностью
;                       до часа (При задании Time 0:30-7:30 временная ось
;                       графика будет оцифрована с 0 до 8 часов).
;
;                       Замечание 2. Длина графика может превышать длину
;                       временного интервала, заданного параметом Time.
;                       О соответствии заданного интервала времени и длины
;                       графика см. пункт "Продолжительность интервалов
;                       времени" в T-HIST.DOC
;

; Date 20.6.2002
;                       Параметр Date <d.m.y> определяет дату, для которой
;                       нужно построить график загрузки узла.
;
;                       Дата задается в формате: d.m.y, где d - номер дня,
;                       m - номер месяца, y - номер года. Каждый из этих
;                       номеров может быть задан как в абсолютном значении
;                       (числа больше 0), так и в относительном (числа
;                       меньше 0).
;                       В абсолютном значении числа обозначают
;                       собственно номера дня, месяца или года.
;                       В относительном значении числа задают смещение
;                       относительно текущего дня, месяца или года.
;                       Если соответствующее число пропущено или равно 0,
;                       то используется значение текущего дня, месяца или года.
;                       Если номер дня больше, чем количество дней в заданном
;                       месяце, то номер дня устанавливается на последний
;                       день заданного месяца, о чем выводится предупреждающее
;                       сообщение.
;
;                       Примеры:
;                       Date 20.6.2002  ; 20 июня 2002 года
;                       Date 20.6       ; 20 июня текущего года
;                       Date 20..2002   ; 20 число текущего месяца 2002 года
;                       Date 20         ; 20 число текущего месяца и года
;                       Date 20.-1      ; 20 число предыдущего месяца
;                       Date 31.-1      ; последнее число предыдущего месяца
;                       Date 32.-1      ; последнее число предыдущего месяца
;                       Date 0.0.0      ; текущие сутки
;                       Date ..         ; текущие сутки
;                       Date 0          ; текущие сутки
;                       Date            ; текущие сутки
;                       Date -1         ; предыдущие сутки (вчерашние)
;                       Date -2         ; позавчерашние сутки
;                       Date -100       ; за 100 дней до текущих суток
;
;                       Значение по умолчанию - Date 0 (текущие сутки).
;
; Внимание! Так как размер бинарных логов не бесконечный, то при использовании
; параметра Date может оказаться, что информация за указанные сутки уже
; отсутствует и график будет пустым.
;

; MiddLine Yes
;                       Параметр MiddLine <Yes|No|Group> определяет, отделять
;                       ли на графике загрузки одну строку от другой
;                       горизонтальной чертой.
;
;                       MiddLine No    -  строки друг от друга не разделять
;                       MiddLine Yes   -  строки друг от друга разделять чертой
;                       MiddLine Group -  разделять чертой только те строки,
;                                         которые принадлежат разным группам
;                                         (см. параметр Addr и макрос '#' ниже)
;
;                       Значение по умолчанию - MiddLine No
;

; KeepAll Yes
;                       Параметр KeepAll <Yes|No> определяет, выводить ли на
;                       графике все адреса, указанные ниже в Addr (независимо
;                       от того, были ли с ними сессии), или только те
;                       адреса, с которыми были сессии.
;
;                       KeepAll No   -  выводить на графике только те адреса,
;                                       с которыми были сессии.
;                       KeepAll Yes  -  выводить на графике все адреса, ука-
;                                       занные в Addr. Если сессий с данным
;                                       адресом не было, то строка графика
;                                       для этого адреса будет незаполненной.
;
;                       Значение по умолчанию - KeepAll No
;

; Group Yes
;                       Параметр Group <Yes|No> определяет, строить ли
;                       дополнительный график суммарной статистики для групп
;                       адресов, при задании которых использовался
;                       макрос '#' (см. параметр Addr ниже), а также выводить
;                       ли данные о группах в статистике по линкам
;
;                       Group No   -  дополнительный график суммарной
;                                     статистики не строить, в статистике по
;                                     линкам данные о группах не выводить
;                       Group Yes  -  строить дополнительный график суммарной
;                                     статистики, выводить данные о группах
;                                     в статистике по линкам
;
;                       Значение по умолчанию - Group No

; NoDrawZero Yes
;                       Параметр NoDrawZero <Yes|No> определяет, отмечать ли
;                       на графике сессии с нулевым траффиком (т.е. когда
;                       не было ни передано, ни получено ни одного файла).
;
;                       NoDrawZero No   -  отмечать на графике любые сесии
;                       NoDrawZero Yes  -  не отмечать на графике сессии с
;                                          нулевым траффиком. При этом счетчик
;                                          числа сессий все равно увеличивается
;
;                       Значение по умолчанию - NoDrawZero No


; BusyHist TIOPU$
;                       T-Hist может строить гистограмму общей загрузки,
;                       а также гистограммы по входным, выходным, парольным и
;                       непарольным сессиям. Если статистика строится по
;                       нескольким линиям, то гистограммы строятся для каждой
;                       из линий индивидуально.
;
;                       Параметр BusyHist [Yes|No|<mask>] определяет, какие
;                       гистограммы следует строить.
;
;                       <mask> - строка, составленная из символов:
;                       'T', 'I', 'O', 'P', 'U', '$'. Символы обозначают:
;                         T    - гистограмма общей загрузки
;                         I    - гистограмма по входящим сессиям
;                         O    - гистограмма по исходящим сессиям
;                         P    - гистограмма по парольным сессиям
;                         U    - гистограмма по непарольным сессиям.
;                         $    - не выводить пустые гистограммы
;                       Порядок символов роли не играет. Маски 'P' и 'U'
;                       учитываются только для T-Mail версий от 2603 и выше.
;                       Для остальных мейлеров они игнорируются.
;
;                       Кроме задания маски в качестве параметра может
;                       фигурировать 'Yes' или 'No':
;
;                         No  - гистограммы не строить (эквивалентно
;                               BusyHist с пустой строкой)
;                         Yes - строить все гистограммы (эквивалентно
;                               BusyHist TIOPU)
;
;                       Значение по умолчанию - BusyHist No
;
;                       Параметр BusyHist можно использовать как в секции
;                       [COMMON], так и в секции [LINE].
;


; ShowValue Ses
;                       По умолчанию для каждой строки в графике выводится
;                       число сессий, объем полученного и переданного траффика.
;                       Параметр ShowValue позволяет вместо числа сессий
;                       выводить время на линии в минутах или средний CPS.
;
;                       ShowValue Time  -  выводить время на линии в минутах
;                       ShowValue CPS   -  выводить средний CPS
;                       ShowValue Ses   -  выводить число сессий
;
;                       Значение по умолчанию - ShowValue Ses


; ProtectSummary Yes
;                       Параметр ProtectSummary <Yes|No> определяет, выводить
;                       ли в конце статистики дополнительную суммарную
;                       информацию по парольным и непарольным сессиям.
;
;                       ProtectSummary No  - выводить только общую суммарную
;                                            информацию
;                       ProtectSummary Yes - наряду с общей выводить также и
;                                            суммарную информацию по парольным
;                                            и непарольным сессиям
;
;                       Значение по умолчанию - ProtectSummary No
;
;                       Если хотя-бы одна из линий, по которым строится
;                       статистика, использует старый формат истории (T-Mail
;                       до 2603 или BinkD), то суммарная информация по
;                       парольным/непарольным сессиям выводиться не будет
;                       независимо от значения параметра ProtectSummary.


; CutHistory 7
;                       Параметр CutHistory <n> определяет, выполнять ли
;                       обрезание файлов истории после построения статистики
;                       или нет, а также число последних суток, информация
;                       о которых должна сохраниться в файлах истории после
;                       их обрезания.
;
;                       CutHistory 0  - файлы истории не обрезать.
;
;                       CutHistory 1  - файлы истории обрезать, сохраняя записи
;                                       о последних (текущих) сутках.
;                       CutHistory 2  - файлы истории обрезать, сохраняя записи
;                                       о текущих и предшествующих сутках.
;                       CutHistory 3  - файлы истории обрезать, сохраняя записи
;                                       о последних 3 сутках (включая текущие)
;                       и т.д.
;
;                       Значение по умолчанию - CutHistory 0
;
;                       Если обрезание файлов истории разрешено (n>0), то после
;                       построения статистики из них удаляются все записи,
;                       возраст которых более n суток.
;
;                       Параметр CutHistory можно использовать как в секции
;                       [COMMON], так и в секции [LINE].
;
;                       Параметр CutHistory учитывается только при работе
;                       с бинарными логами T-Mail, BinkD, Argus, DVMmail и
;                       X-Mail32. Для бинарных логов остальных поддерживаемых
;                       мейлеров параметр CutHistory игнорируется, и обрезание
;                       не выполняется.


; TimeShift 3
;                       Параметр TimeShift <n> позволяет скорректировать
;                       время в том случае, когда статистика оказывается
;                       смещена относительно реальных временных интервалов.
;
;                       <n> - положительная или отрицательная величина в часах,
;                       которая добавляется к каждому временному событию перед
;                       выводом его в статистику.
;
;                       Значение по умолчанию - 0.
;
;                       Можно задать автоматическую установку TimeShift:
;
;                         TimeShift Auto
;
;                       В этом случае значение TimeShift будет равно текущему
;                       смещению по времени от GMT, которое берется из
;                       системных установок (настройка TimeZone для
;                       Win32-версии, переменная окружения TZ для DOS и OS/2
;                       версий). Если переменная окружения TZ не установлена,
;                       то задание 'TimeShift Auto' в DOS и OS/2 версии
;                       эквивалентно 'TimeShift 0'.
;
;                       Параметр TimeShift можно использовать как в секции
;                       [COMMON], так и в секции [LINE].


; BrakeSesStat ADTBE
;                       Параметр BrakeSesStat определяет, выводить ли для
;                       пользователей The Brake! в статистике по линкам и по
;                       сессиям данные о периодах ответа на звонки, набора
;                       номеров, работы в терминале, вызовов BBS и внешних
;                       программ.
;
;                       Формат параметра: BrakeSesStat [Yes|No|Mask]
;                       где mask - строка, составленная из символов:
;                       'A', 'D', 'T', 'B', 'E'. Символы обозначают:
;                         A - выводить статистику о периодах ответа на звонки
;                         D - выводить статистику о периодах набора номера
;                         T - выводить статистику о периодах работы в терминале
;                         B - выводить статистику о вызовах BBS
;                         E - выводить статистику о вызовах внешних программ
;                       Порядок символов роли не играет.
;
;                       Кроме задания маски в качестве параметра может
;                       фигурировать 'Yes' или 'No':
;
;                         Yes - выводить статистику по всем пунктам
;                               (эквивалентно BrakeSesStat ADTBE)
;                         No  - статистику по указанным пунктам не выводить
;                               (эквивалентно BrakeSesStat с пустой строкой)
;
;                       Значение по умолчанию - BrakeSesStat No
;
;                       На статистику для мейлеров, отличных от The Brake!,
;                       параметр BrakeSesStat никакого влияния не оказывает
;


; AdvancedCPS No
;                       Параметр AdvancedCPS определяет способ подсчета
;                       среднего CPS.
;
;                         No  - CPS вычисляется обычным образом - траффик
;                               делится на длительность ненулевых сессий.
;
;                         Yes - при подсчете CPS из длительности каждой сессии
;                               с ненулевым траффиком вычитается средняя
;                               длительность сессии с нулевым траффиком для
;                               данного линка. Такой способ позволяет отбросить
;                               потери времени на прохождение EMSI и более
;                               точно вычислить время, затрачиваемое собственно
;                               на передачу файлов
;
;                       Значение по умолчанию - AdvancedCPS No
;
;                       Целесообразно использовать 'AdvancedCPS Yes' на
;                       IP-линиях, где затраты времени на прохождение EMSI
;                       вносят заметные искажения в реальный CPS передачи
;                       файлов при обычном способе подсчета CPS.
;
;                       Параметр AdvancedCPS можно использовать как в секции
;                       [COMMON], так и в секции [LINE].


; SwapInOut No
;                       Параметр SwapInOut позволяет скорректировать ситуацию
;                       когда в статистике перепутаны входящие и исходящие
;                       сессии (такое бывает при работе с логом binkd).
;
;                         No  - cессии воспринимаются как есть.
;
;                         Yes - входящие сессии воспринимаются как исходящие,
;                               а исходящие - как входящие.
;
;                       Значение по умолчанию - SwapInOut No
;
;                       Параметр SwapInOut можно использовать как в секции
;                       [COMMON] - тогда он действует на все линии, так и в
;                       секции [LINE] - тогда он действует только на данную
;                       линию.

;============================================================================

[LINE]                           ; Начало описания первой линии

History D:\T-MAIL\T-HIST.$01     ; Первая линия T-Mail

;                       Обязательный параметр в секции [LINE], определяющий
;                       путь и имя файла t-hist.$##, для которого строится
;                       график загрузки узла. Полный формат параметра History
;                       следующий:
;
;                       History <history_file>[,n[,m]]
;
;                       Здесь <history_file> - путь и имя файла истории для
;                       данной линии. Цифровые параметры n и m задаются для
;                       BinkD-линий. n определят число одновременно проводимых
;                       входных сессий, m - число одновременно проводимых
;                       выходных сессий. Наличие хотя бы одной запятой после
;                       имени файла истории говорит о том, что это BinkD-линия.
;                       Величины n и m могут опускаться. При этом считается,
;                       что соответствующие сессии не проводятся.
;
;                       Примеры:
;                       History t-mail.$01      ; линия T-Mail
;                       History binkd.$01,6,4   ; линия BinkD, способная
;                                               ; одновременно проводить
;                                               ; 6 входных и 4 выходных сессий
;                       History binkd.$02,6     ; линия BinkD, 6 входных сессий,
;                                               ; выходные сессии не проводятся
;                       History binkd.$03,6,    ; то же самое
;                       History binkd.$04,6,0   ; то же самое
;                       History binkd.$05,,4    ; линия BinkD, 4 выходных
;                                               ; сессии, входные сессии
;                                               ; не проводятся
;                       History binkd.$06,0,4   ; то же самое
;

; Name "Modem Line"             ; Задание имени линии, которое выводится
;                               ; в заголовках гистограмм.
;
;                       Формат:
;
;                       Name <string>
;
;                       Здесь <string> - текстовая строка произвольной длины,
;                       заключенная в кавычки. Имя линии по умолчанию:
;
;                       Для многолинейных систем: "Line <n>", где <n> -
;                       порядковый номер секции [LINE].
;                       Для однолинейных систем имя линии по умолчанию -
;                       пустая строка.
;

;============================================================================

;[LINE]                          ; Начало описания второй линии
;
; History D:\T-MAIL\T-HIST.$02   ; Вторая линия T-Mail
;

;============================================================================

;[LINE]                          ; Начало описания третьей линии
;
; History D:\BINKD\BINKD.$01,6,4 ; Линия BinkD, способная одновременно
;                                ; проводить 6 входных и 4 выходных сессии
;
; Name "BinkD Line"              ; Имя линии: "BinkD Line"
;
; BusyHist IO                    ; для данной линии строить гистограммы только
;                                ; по входным и выходным сессиям
;
; CutHistory 1                   ; обрезать файл истории после построения
;                                ; статистики, оставляя только записи о
;                                ; текущих сутках
;
; TimeShift 3                    ; сдвинуть в статистике все события на 3 часа
;                                ; вперед
;
; AdvancedCPS Yes                ; использовать метод подсчета CPS для быстрых
;                                ; IP-линий
;
; BinkdAborted In                ; в бинарном логе binkd для оборванных сессий
;                                ; невозможно определить, были ли они входящими
;                                ; или исходящими. Параметр BinkdAborted
;                                ; определяет, как интерпретировать оборванные
;                                ; сессии у binkd-линий, проводящих как
;                                ; входящие, так и исходящие сессии.
;
;                                ;   In  - все оборванные сессии binkd
;                                ;         считаются входящими
;
;                                ;   Out - все оборванные сессии binkd
;                                ;         считаются исходящими.
;
;                                ; Зачение по умолчанию - In
;
;                                ; Параметр может задаваться как в секции
;                                ; [COMMON] - тогда он действует на все
;                                ; binkd-линии, так и в секции [LINE] - тогда
;                                ; он действует только на данную binkd-линию.
;

;============================================================================

[COMMON]                         ; продолжение описания общих параметров


; Адреса, для которых строится график загрузки, задаются с помощью
; параметра Addr. Если для указанного адреса (группы адресов) информация
; в t-hist.$## отсутствует и не указано 'KeepAll Yes', то соответствующая
; строка на графике отображаться не будет.
;
; Формат параметра Addr:
;
; Addr <address> [<comment>]
;
; При задании адресов разрешается использовать символы '*' и '#'.
;---------------------------------------------------------------------------
;
; Символ '*' - это wildcard, позволяющий задавать строки графика, содержащие
; суммарную информацию по некоторым группам адресов. Если какое-либо поле
; адреса пропущено, то вместо него также подразумевается '*'. Например,
; на графике будет отдельная строка, содержащая суммарную информацию для:
;
; Addr 2:5020/378.*
;       - узла 2:5020/378 и всех его пойнтов.
;
; Addr 2:5020/378
;       то же самое (пойнтовый номер опущен, поэтому подразумевается '*').
;
; Addr 2:5020/*.0
;       - для всех узлов сети 2:5020
;
; Addr 2:5020/*.*
;       - всех узлов и пойнтов сети 2:5020
;
;-----------------------------------------------------------------------------
;
; Символ '#' является макросом, позволяющий одной строкой Addr задать
; несколько строк на графике. Например, на графике будет отдельная строка для:
;
; Addr 2:5020/378.#
;      - каждого пойнта узла 2:5020/378, с котоpым была сессия
;
; Addr 2:5020/#.0
;      - каждого узла из 2:5020, с котоpым была сессия
;
; Addr 2:5020/#.*
;      - каждого узла из 2:5020 вместе с его пойнтами
;
; Addr 2:5020/#.#
;      - каждого узла или пойнта из 2:5020, с которыми были сессии
;
; Addr 2:#/*.*
;      - каждой сети из зоны 2, с узлами или пойнтами который были сессии
;
; Addr 2:#/#.0
;      - каждого узла из зоны 2, с которым была сессия
;
; Addr #:#/*.*
;      - каждой сети из любой зоны, с узлами или пойнтами которой была сессия
;
; Addr #:*/*.*
;      - каждой зоны, с узлами или пойнтами которой была сессия
;
; Addr #:#/#.#
;      - каждого узла или пойнта, с котоpым была сессия
;
; На адреса, заданные с помощью '#' параметр 'KeepAll Yes' не действует
; (за исключением графика суммарной статистики по группам).
;
;----------------------------------------------------------------------------
;
; Адреса просматриваются сверху вниз до первого подходящего адреса. Например,
; если задано следующее:
;
; Addr 2:5020/378.2
; Addr 2:5020/378.*
; Addr *:*/*.*
;
; то в первой строке графика будет информация для 2:5020/378.2, во второй
; строке суммарная информация для всех остальных пойнтов узла 2:5020/378,
; а в третьей строке - для всех остальных адресов.
;
; Если же порядок задания адресов поменять местами, (на первое место
; поставить строку 'Addr *:*/*.*'), то на графике будет всего лишь одна
; строка, соответствующая *:*/*.*. Поэтому сначала нужно задавать более
; конкретные адреса, а после них - более общие.
;
;----------------------------------------------------------------------------
;
; При задании адресов в параметре Addr можно исключать определенные адреса из
; статистики. Для этого перед адресом нужно поставить символ '!'. Наличие
; символа '!' перед адресом говорит, что данный адрес _никогда_ не будет
; изображаться на графике и не будет учитываться при подсчете траффика,
; загрузки узла и другой статистической информации. (Поэтому если вам нужна
; реальная статистика загрузки - не используйте исключение адресов).
;
; Возможность исключения некторых адресов может понадобиться в том случае,
; когда вы задаете адреса с помощью масок, содержащих '*' и '#', но вы не
; хотите отображать информацию для определенных адресов.
; Примеры:
; --------------------
;  Addr !2:5020/378.1    ; строить статистику для всех пойнтов
;  Addr 2:5020/378.#     ; узла 2:5020/378 за исключением 2:5020/378.1
; --------------------
;  Addr !2:5020/378.*    ; строить статистику для всех узлов и пойнтов сети
;  Addr 2:5020/#.#       ; 2:5020 за исключением узла 2:5020/378 и его пойнтов
; --------------------
;  Addr !2:5020/*.0      ; строить статистику только по пойнтам сети 2:5020,
;  Addr 2:5020/#.#       ; а все узлы сети исключить
; --------------------
;
; Поскольку адреса просматриваются сверху вниз до первого подходящего адреса,
; то исключаемые адреса должны располагаться перед теми групповыми масками, из
; которых они исключаются, а не после. Иначе говоря, конструкция
;
;  Addr !2:5020/378.1
;  Addr 2:5020/378.#
;
; будет исключать адрес 2:5020/378.1, а конструкция
;
;  Addr 2:5020/378.#
;  Addr !2:5020/378.1
;
; адрес 2:5020/378.1 исключать не будет, так как он попадает под первый
; параметр Addr.
;
;----------------------------------------------------------------------------
;
; После адреса можно указать комментарий, который будет выведен на графике.
; Комментарий должен быть заключен в кавычки и его длина должна быть
; не более 15 символов (если больше, то он будет обрезан). Комментарий
; выводится на графике только при наличии разделительных линий
; (т.е. при 'MiddLine Yes').
;
; Если комментарий указан для Addr, содержащего макрос '#', то этот
; комментарий будет выведен для всех адресов, которые задает этот макрос.
;
; Пример:
;
;  Addr 2:5020/378.# "My Point"
;  Addr 2:5020/#.0   "Moscow Node"
;
;----------------------------------------------------------------------------
;
; При работе с бинарным логом The Brake! можно получить данные о запусках
; внешних программ, вызовах BBS, периодах ответа на звонки, набора номеров и
; работы в терминале. Для этого в параметре 'Addr' допустимо вместо адреса
; указывать 'External', 'BBS', 'Answer', 'Dial', 'Terminal' соответственно.
;
; Пример:
;
;  Addr External        ; Изображать на графике запуски внешних программ
;  Addr BBS             ; Изображать на графике вызовы BBS
;  Addr Answer          ; Изображать на графике периоды ответа на звонки
;  Addr Dial            ; Изображать на графике периоды набора номеров
;  Addr Terminal        ; Изображать на графике периоды работы в терминале
;
; При работе с бинарными логами других мейлеров эти параметры игнорируются.
;
;----------------------------------------------------------------------------

Addr 2:5020/378.#
Addr 2:5020/#.#
Addr 2:#/*.*
Addr #:#/*.*

;
;============================================================================
;
; Это комментарий
;
;=============================================================================



                              Командная строка
                              ================

  Для работы с T-Hist достаточно  положить его в любую директорию  и поместить
в эту же директорию настроенный  файл T-HIST.CTL. Никаких параметров T-Hist  в
командной строке при этом задавать не требуется.

  Однако существует возможность задания  имени файла конфигурации и  некоторых
параметров из  командной строки.  при этом  значения параметров,  задаваемые в
командной строке с помощью ключей, перекрывают значения, заданные как в секции
[COMMON],  так  и  в  секциях  [LINE]  конфигурационного  файла. Иначе говоря,
значение,  заданное  в  командной  строке  будет  применяться  ко  всем линиям
независимо от того, что написано в секциях  [LINE].


Допустимые ключи:


  -c<ctl_file>  Задает имя файла конфигурации (по умолчанию T-HIST.CTL)

  -o<out_file>  Перекрывает значение параметра 'Output' в файле конфигурации.
                При задании имени выходного файла статистики можно использовать
                макросы %y, %m, %d, %w, %n и модификатор '+'.

  -l<lnk_file>  Перекрывает значение параметра 'LinkStat' в файле конфигурации.
                При задании имени выходного файла статистики можно использовать
                макросы %y, %m, %d, %w, %n и модификатор '+'.

  -e<ses_file>  Перекрывает значение параметра 'SessionStat' в файле
                конфигурации. При задании имени выходного файла статистики
                можно использовать макросы %y, %m, %d, %w, %n и модификатор '+'.

  -h<history_file>[,n[,m]]
                Задает дополнительную линии, для которой будет строиться
                статистика. Формат ключа совпадает с форматом параметра
                'History' в файле конфигурации. Для линии, заданной с помощью
                ключа -h действуют параметры, заданные в секции [COMMON].
                Индивидуальные параметры задать для такой линии нельзя.
                Возможно использование ключа -h несколько раз.

  -d<d.m.y      Перекрывает значение параметра 'Date' в файле конфигурации.

  -b[+|-|<mask>] Перекрывает значение параметра 'BusyHist' в файле конфигурации
                 -b+  BusyHist Yes
                 -b-  BusyHist No
                 Маска <mask> совпадает с маской в параметре BusyHist

  -g[+|-]       Перекрывает значение параметра 'Group' в файле конфигурации
                 -g+  Group Yes
                 -g-  Group No
                 -g   значение 'Group' противоположное указанному в
                      файле конфигурации

  -k[+|-]       Перекрывает значение параметра 'KeepAll' в файле конфигурации
                 -k+  KeepAll Yes
                 -k-  KeepAll No
                 -k   значение 'KeepAll', противоположное указанному в
                      файле конфигурации

  -m<+|-|g>     Перекрывает значение параметра 'MiddLine' в файле конфигурации
                 -l+  MiddLine Yes
                 -l-  MiddLine No
                 -lg  MiddLine Group

  -n[+|-]       Перекрывает значение параметра 'NoDrawZero' в файле
                конфигурации
                 -n+  NoDrawZero Yes
                 -n-  NoDrawZero No
                 -n   значение 'NoDrawZero', противоположное указанному в
                      файле конфигурации

  -s<s|t|c>     Перекрывает значение параметра 'ShowValue' в файле конфигурации
                 -ss  ShowValue Ses
                 -st  ShowValue Time
                 -sc  ShowValue CPS

  -t<xx:xx:xx-yy:yy:yy>
                Перекрывает значение параметра 'Time' в файле конфигурации

  -?            Информация о ключах



                               Поддержка BinkD
                               ===============

  Формат файла истории BinkD совместим с форматом файла истории T-Mail  версии
до 2603. Поэтому T-Hist может использоваться и для BinkD-линий.

  Поскольку BinkD  может одновременно  проводить несколько  входных и выходных
сессий, но при  этом информация о  сессиях записывается в  один и тот  же файл
истории,  то  для  правильного  построения  гистограмм  необходимо знать число
одновременно  проводимых  сессий.  Для  этого  используются расширенный формат
параметра History в файле конфигурации:

  History <history_file>[,n[,m]]

где  n,m  -  число  одновременно   проводимых  входящих  и  исходящих   сессий
соответственно.  Наличие  хотя-бы  одной  запятой  после имени файла истории в
параметре History говорит  о том, что  это история от  BinkD, а не  от T-Mail.
Величины n  и m  могут опускаться.   При этом  считается, что  соответствующие
сессии не проводятся.

  Если  для  линии  BinkD  указано,  что  она  не  проводит входные (выходные)
сессии,  то  гистограмма   входных  (выходных)  сессий   строиться  не   будет
независимо от того, что указано в параметре BusyHist.

  Поскольку у  BinkD  в бинарном логе для оборванных сессий нельзя определить,
были  ли  они  входящими или исходящими,  то  в  конфигурационном файле T-Hist
присутствует  параметр  BinkdAborted <In|Out>.  Параметр  действует только при
обработке BinkD-линий,  проводящих как входящие,  так и исходящие сессии.  При
значении  'BinkdAborted In'  все оборванные сессии  BinkD считаются входящими,
при  значении  'BinkdAborted Out' - исходящими.  Значение  по  умолчанию - In.
Параметр  может задаваться  как в секции  [COMMON] - тогда он действует на все
BinkD-линии,  так  и  в  секции  [LINE] - тогда  он действует только на данную
BinkD-линию.

  При  вычислении  процента  загрузки  (Usage)  для  BinkD-линий,   процентное
отношение  суммарного  времени  на  линии  к  интервалу  времени, для которого
строится  статистика,  делится   еще  и  вес   линии,  т.е.  на   сумму  числа
одновременно  проводимых  входных  и  выходных  сессий.  Т.е. если для T-Mail,
который в течение суток был в  online 12 часов, загрузка будет 50%  (вес линии
равен 1), то  для BinkD, способного  проводить 6 входных  и 4 выходных  сессии
одновременно, при  той же  величине online'ового  времени загрузка  будет в 10
раз меньше, т.е. 5% (вес линии - 10).

  При  вычислении  усредненного  процента  загрузки  по  всем  линиям (Usage в
суммарной статистике) процентное  отношение суммарного online-времени  по всем
линиям  к  интервалу  времени,  для  которого  строится статистика, делится на
сумму  весов  всех  линий.  Вес  каждой  из  линий  T-Mail  - 1, вес каждой из
BinkD-линий - число одновременно проводимых входных и выходных сессий.

  Поскольку  BinkD  использует  старый  формат  истории,  то все, что касается
версий T-Mail до  2603, справедливо и  для BinkD. Т.е.  в статистике не  будет
данных о парольных/непарольных сессиях.


                             Поддержка The Brake!
                             ====================

  T-Hist поддерживает формат бинарного лога The Brake! версии 718Alfa7 и более
поздних.   Распознавание  лога  The Brake!  происходит автоматически,  поэтому
никаких изменений в файле конфигурации по  сравнению c T-Mail делать не нужно.

  T-Hist не выполняет обрезание бинарного лога  The Brake! независимо от того,
чему равно значение параметра CutHistory. Кроме того, бинарный лог  The Brake!
не содержит данных о запароленности  сессий,  поэтому  T-Hist не будет строить
статистику о парольных/непарольных сессиях.

  T-Hist при работе с бинарным логом  The Brake!  может изображать  на графике
запуски внешних программ, вызовы BBS, периоды ответа на звонки, набора номеров
и работы в терминале.  Для  этого в параметре  'Addr'  допустимо вместо адреса
указывать  'External',  'BBS',  'Answer',  'Dial',  'Terminal' соответственно.
Все указанные периоды времени отображаются также на гистограмме общей загрузки
и  учитываются  при  вычислении  времени  общей  загрузки станции.

  Кроме того, запуск внешней программы или BBS считается  сессией,  поэтому  в
общее  число  сессий будет входить и число запусков внешних программ и вызовов
BBS.  При  этом  слева  от  гистограммы  общей загрузки будет выводиться число
запусков внешних программ и вызовов BBS. (Answer, Dial и Terminal сессиями  не
считаются).

  Данные о запусках внешних программ, вызовах BBS, периодах ответа  на звонки,
набора номеров и работы в терминале могут выводиться в статистике по линкам  и
по сессиям.   Для указания,  что  именно  разрешается  выводить,  используется
параметр BrakeSesStat в файле конфигурации T-Hist.

  При работе с другими мейлерами запуски внешних программ, вызовы BBS, периоды
ответа на звонки, набора номеров и работы в терминале игнорируются,  поскольку
эта информация отсутствует в их бинарных логах.


                               Поддержка Bink/+
                               ================

  T-Hist поддерживает  формат бинарных логов  Bink/+/3.x  (файлы .ihs и .ohs -
статистика по входящим и исходящим сессиям).  Распознавание лога Bink/+ проис-
ходит по расширению .ihs или .ohs. При этом в параметре History следует указы-
вать только один файл (или .ihs, или .ohs). После обработки этого файла T-Hist
автоматически будет пытаться открыть второй файл.

  При построении гистограмм по входным и выходным сессиям T-Hist рядом  с ними
выводит стоимость входных и выходных звонков соответственно,  данные о которой
берутся из бинарных логов Bink/+.

  T-Hist не выполняет обрезание бинарных логов Bink/+ независимо от того, чему
равно  значение параметра CutHistory.  Кроме того, бинарные логи Bink/+ не со-
держат данных о запароленности сессий,  поэтому  T-Hist не будет строить  ста-
тистику о парольных/непарольных сессиях.


                               Поддержка FhMail
                               ================

  Поскольку  формат  бинарных  логов FhMail совместим с форматом логов Bink/+,
T-Hist  может  создавать  статистику  и  для  FhMail.  Для этого нужно,  чтобы
бинарные логи FhMail назывались так же, как и у Bink/+: <имя>.ihs для входящих
сессий  и  <имя>.ohs   для  исходящих  сессий.   Все  остальное  соответствует
сказанному выше для Bink/+.


                              Поддержка KittenMail
                              ====================

  T-Hist поддерживает формат бинарного лога KittenMail, распознавание которого
происходит автоматически,  то  есть никаких  изменений в файле конфигурации по
сравнению c T-Mail делать не нужно.

  T-Hist не выполняет обрезание бинарного лога  KittenMail независимо от того,
чему равно значение параметра CutHistory.


                            Поддержка BinkleyTerm-XE
                            ========================

  T-Hist  поддерживает  формат  бинарного лога  BinkleyTerm-XE,  распознавание
которого  происходит  автоматически,   то   есть  никаких  изменений  в  файле
конфигурации  по  сравнению  c T-Mail делать не нужно.

  При работе с бинарным логом BinkleyTerm-XE учитывается также запуск  внешних
мейлеров  (external mailer).  Чтобы  эти  запуски  были  внесены в статистику,
нужно  в  настройках  BinkleyTerm-XE  сессиям,  проводимым внешними мейлерами,
приписать ненулевые FTN-адреса.

  T-Hist  не выполняет  обрезание бинарного лога  BinkleyTer-XE  независимо от
того, чему равно значение параметра CutHistory.


                             Поддержка InternetRex
                             =====================

  T-Hist поддерживает формат бинарных логов InternetRex  (два файла со статис-
тикой по входящим и исходящим сессиям). Фактически, их формат совпадает с фор-
матом бинарных логов FrontDoor.

  Для того, чтобы T-Hist мог обрабатывть бинарные логи InternetRex,  необходи-
мо, чтобы расширение файлов было .ihs и .ohs для бинарных логов по входящим  и
исходящим сессиям соответственно.  Имя  (не расширение)  бинарных  логов может
быть любым, но обязательно одинаковым.  В  параметре History следует указывать
только один файл (или .ihs, или .ohs). После  обработки этого файла T-Hist ав-
томатически будет пытаться открыть второй файл.

  При построении гистограмм по входным и выходным сессиям T-Hist рядом  с ними
выводит стоимость входных и выходных звонков соответственно,  данные о которой
берутся из бинарных логов InternetRex в соответствии с форматом FrontDoor.

  T-Hist не выполняет обрезание бинарных логов InternetRex независимо от того,
чему  равно   значение   параметра   CutHistory.  Кроме  того,  бинарные  логи
InternetRex  не содержат данных о запароленности сессий, поэтому T-Hist не бу-
детстроить статистику о парольных/непарольных сессиях.


                              Поддержка FrontDoor
                              ===================

  Поскольку  формат бинарных логов  у FrontDoor и  IntenetRex одинаковый, все,
что сказано о поддержке InternetRex, справедливо и для FrontDoor.

  Поскольку  имена   и  расширения  бинарных  логов  FrontDoor  заданы  жестко
(inbound.his и outbound.his), а T-Hist будет их обрабатывать только с расшире-
ниями .ihs и .ohs, то перед обработкой их T-Hist можно сделать следующее:

  copy inbound.his fd.ihs
  copy outbound.his fd.ohs
  t-hist.exe
  del fd.?hs

При этом в t-hist.ctl в параметре History нужно прописать fd.ihs или fd.ohs.


                Поддержка Argus, DVMmail, X-Mail32, BasicMail
                =============================================

  Формат бинарных логов перечисленных мейлеров полностью совпадает  с форматом
бинарного  лога  T-Mail.  Работа  T-Hist  c  логами  этих  мейлеров  ничем  не
отличается от работы с логом T-Mail.



                   То, что T-Hist никогда делать не будет
                   ======================================

  T-Hist никогда не будет анализировать текстовые логи.  Он  работает только с
бинарными логами.

  T-Hist никогда не будет сам формировать PKT со статистикой  или  сам постить
статистику в мессадж-базу. Все это можно сделать средствами эхопроцессоров.



                               Утилита DmpHist
                               ===============

  В состав дистрибутива T-Hist входит утилита  DmpHist  (версии под NT, OS/2 и
DOS).  Эта утилита  для каждого  файла истории,  прописанного  в  T-HIST.CTL в
параметрах History, выводит все записи в виде таблицы содержащей адрес, дату и
время сессии, ее продолжительность, входящий и исходящий траффик.

  DmpHist по умолчанию использует  конфиг T-HIST.CTL,  хотя вы можете задать и
другой файл конфигурации с помощью ключа -c.

  Прежде  чем  писать  мне  багрепорты  о  том,  что T-Hist неправильно строит
статистику,  посмотрите  с  помощью  DmpHist содержимое ваших файлов истории -
может быть T-Hist тут не при чем, он выводит то, что есть в файле истории.



                               Утилита LnkStat
                               ===============

  В состав дистрибутива T-Hist входит утилита  LnkStat  (версии под NT, OS/2 и
DOS).  Эта  утилита  позволяет  на  основе  файлов  истории получить суммарную
статистику  для   указанных  в  конфигурационном  файле  адресов,   начиная  и
заканчивая заданными датами.

  LnkStat  по  умолчанию  использует  конфиг  T-HIST.CTL,  в  котором для него
представляют интерес  параметры:  History,  Name,  SupportNewFormat,  KeepAll,
Group,  BrakeSesStat,  AdvancedCPS,  SwapInOut,  BinkdAborted, Addr. Остальные
параметры LnkStat игнорирует.  С помощью  ключа  -с  можно задать  другой файл
конфигурации.

  По умолчанию LnkStat строит суммарную статистику на основе  всей информации,
хранящейся в файлах истории,  и записывает ее в файл  LINKSTAT.OUT.  С помощью
ключей командной строки можно задать имя выходного файла и даты начала и конца
периода, за который нужно строить статистику.

  Допустимые ключи командной строки LnkStat:

  -c<ctl_file>  Задает имя файла конфигурации (по умолчанию T-HIST.CTL)

  -o<out_file>  Задает имя выходного файла (по умолчанию LINKSTAT.OUT)
                При задании имени выходного файла можно использовать
                макросы %y, %m, %d, %w, %n и модификатор '+', смысл которых
                тот же, что и при задании имен файлов для T-Hist.

  -h<history_file>[,n[,m]]
                Задает дополнительную линию, для которой будет строиться
                статистика. Формат ключа совпадает с форматом параметра
                'History' в файле конфигурации. Для линии, заданной с помощью
                ключа -h действуют параметры, заданные в секции [COMMON].
                Индивидуальные параметры задать для такой линии нельзя.
                Возможно использование ключа -h несколько раз.

  -b<d.m.y>     Получить статистику, начиная с указанной даты. Если этот
                ключ не задан, то статистика начинается с самой ранней даты,
                присутствующей в файлах истории.

  -e<d.m.y>     Получить статистику, заканчивающуюся указанной датой. Если этот
                ключ не задан, то статистика заканчивается на самой поздней
                дате, присутствующей в файлах истории.

  -d<n>         Подсчитывать статистику только за n дней, начиная с заданного
                дня (указаной ключом -b) или начиная с самой ранней
                даты (если ключ -b не задан). Данный ключ игнорируется,
                если задан ключ -e.

  -g[+|-]       Перекрывает значение параметра 'Group' в файле конфигурации
                 -g+  Group Yes
                 -g-  Group No
                 -g   значение 'Group' противоположное указанному в
                      файле конфигурации

  -k[+|-]       Перекрывает значение параметра 'KeepAll' в файле конфигурации
                 -k+  KeepAll Yes
                 -k-  KeepAll No
                 -k   значение 'KeepAll', противоположное указанному в
                      файле конфигурации

  -?            Информация о ключах


  Формат даты в ключах -b и -e такой же, как и в параметре Date в T-HIST.CTL.
Примеры задания дат:

  LnkStat -b5.3.2002 -e20.6.2002      - получить статистику с 5 марта 2002 по
                                        20 июня 2002 включительно

  LnkStat -b5.3 -e20.6                - получить статистику с 5 марта по
                                        20 июня текущего года включительно

  LnkStat -b5..2002 -e20..2002        - получить статистику с 5 числа по
                                        20 число текущего месяца 2002 года

  LnkStat -b5 -e20                    - получить статистику с 5 по 20 число
                                        текущего месяца текущего года

  LnkStat -b1 -e31                    - получить статистику за текущий месяц
                                        (с первого по последнее число)

  LnkStat -b1 -e32                    - то же самое, т.к. номер последнего дня
                                        устанавливается на последнее число
                                        текущего месяца

  LnkStat -b1.-1 -e31.-1              - получить статистику за прошлый месяц

  LnkStat -b1.-1 -d15                 - получить статистику за первые 15 дней
                                        предыдущего месяца

  LnkStat -b-40                       - получить статистику за последние 40
                                        суток предыдущего месяца

  LnkStat -b-40 -d25                  - получить статистику, начиная за 40 дней
                                        от текущего числа, продолжительностью
                                        25 суток

  LnkStat -b1.1.-1                    - получить статистику с 1 января прошлого
                                        года по текущую дату

  LnkStat -e31.4                      - получить статистику, начиная самой
                                        ранней даты в файлах истории и
                                        заканчивая последним днем апреля
                                        текущего года

  LnkStat -d100                       - получить статистику за первые 100
                                        суток, информация о которых есть
                                        в файлах истории

  LnkStat -b5.-1 -e20.-1 -d10         - получить статистику с 5 по 20 число
                                        предыдущего месяца (ключ -d
                                        игнорирутся)

  Возможна  некорректная  работа  ключа  -d<n>,  если  он задан при отсутствии
ключа -b при обработке нескольких  файлов  истории  -  статистика  может  быть
получена более чем за  n  дней.  Для корректной работы указывайте ключ  -d<n>
совместно с -b.

  Даты начала и конца сбора статистики, выводимые в заголовке выходного файла,
определяются  на основе  обработанных записей  в  файлах истории.  Дата начала
равна дате самой ранней записи, удовлетворяющей ключу -b,  дата конца равна
дате самой поздней записи, удовлетворяющей ключу -e или -d.

  ВНИМАНИЕ! При достаточно большой длительности периода, за который собирается
статистика,  величина  траффика  для  некоторой  системы, группы  или величина
суммарного траффика может оказаться больше, чем 2 в 32-й степени байт.  В этом
случае  выводимые  досовской  и  OS/2-версией  LnkStat значения траффика будут
неправильными. Правильно будет работать только Win32-версия. (Досовская и OS/2
версии работают в этой ситуации неправильно потому, что у меня нет компилятора
под DOS и OS/2, в которых поддерживаются 64-битные целые числа).


                                Благодарности
                                =============

  Автор  выражает  благодарность  Andy Elkin  (2:5030/15)  за  мейлер  T-Mail,
Slawa Olhovchenkov (2:5030/57.570) и Jury Fradkin (2:5030/339)  за T-Mail API,
Mikel Lavrentyev (2:5020/35) за  bink/+ links statistics utility,  послужившей
прообразом  для оформления графиков,  John Gladkih  (2:5051/16)  за  исходники
работы с бинарным логом The Brake!, Eugine Tukin (2:5020/324) за утилиту BTSV,
послужившей прообразом для оформления суммарной статистики LnkStat, и всем кто
решился потестировать T-Hist :)


                              Где взять T-Hist?
                              =================

  Новые  версии  T-Hist  помещаются  в  файлэхи  AFTNMISC и T-MAIL. По файлэхе
AFTNMISC  проходят  все  версии  T-Hist,  по  T-MAIL - только те,  изменения в
которых затрагивают пользователей T-Mail.


                                 Дистрибутив
                                 ===========

  T-Hist распространяется в виде архива, содержащего:

        T-HIST-N.EXE    - T-Hist NT version
        T-HIST-2.EXE    - T-Hist OS/2 version
        T-HIST.EXE      - T-Hist DOS version
        T-HIST.CTL      - T-Hist control file example
        T-HIST.DOC      - Documentation (this file)
        T-HIST.ENG      - Short t-hist.ctl description in english
        WHATS.NEW       - Changes from previous versions
        README          - T-Hist short description
        DMPHISTN.EXE    - DmpHist NT version
        DMPHIST2.EXE    - DmpHist OS/2 version
        DMPHIST.EXE     - DmpHist DOS version
        LNKSTATN.EXE    - LnkStat NT version
        LNKSTAT2.EXE    - LnkStat OS/2 version
        LNKSTAT.EXE     - LnkStat DOS version
        DESCRIPT.ION    - File descriptions
        FILE_ID.DIZ     - Archive description

==============================================================================
  When  extracting  file(s) from  T-Hist Archive with  PKUNZIP, you should see
the -AV indication for each file, and at the end:

     Authentic files Verified!   # PGP378
     Michael Markowsky, KLUG's BBS (2:5020/378@fidonet)

If  this  information  is  missing,  you  may  have  incompleted,  modified or
corrupted archive.


  При  распаковке  PKUNZIP'ом  архива,  содержащего T-Hist,  Вы должны увидеть
индикатор -AV у каждого файла, а при завершении распаковки:

     Authentic files Verified!   # PGP378
     Michael Markowsky, KLUG's BBS (2:5020/378@fidonet)

Если это информация отсутствует, то  у Вас находится измененный, неполный  или
испорченный архив T-Hist.
==============================================================================


                                 DISCLAIMER
                                 ==========

==============================================================================
  T-HIST is  provided as  is and  comes with  no warranty of any kind,  either
expressed or implied.  In no event will the  author be liable for any  damages
resulting from the  direct or   indirect use of  this  Software.  The user  of
this program  bears all risk as to its quality and performance.

  T-HIST распространяется as is (как есть). Автор не несет ответственности  за
возможный  моральный  и/или  материальный  ущерб,  наступивший  в   результате
использования этой программы. Вы используете программу на свой страх и риск.
==============================================================================


  17.06.03    Michael Markowsky (klug), 2:5020/378@fidonet (KLUG's BBS)
