Supported:
Binkd, qico 0.60.2+, T-Mail,
Argus, Internet Rex, FrontDoor, Bink/+, FhMail,
BinkleyTerm-XE, The
Brake!, KittenMail, DVMmail, XMail32, BasicMail
and any other
FTN-mailers using the T-Hist or T-Mail binary log formats
Version 1.8.2
Linux (x86_64, i686, arm64) and Windows (Win64,
Win32) executables
Утилита T-Hist предназначена для создания текстовых файлов со
статистикой работы одного или нескольких FTN-мейлеров в течение
заданного интервала времени заданной даты для заданных FTN-адресов.
Информацию для генерации статистики T-Hist получает из
бинарных логов, также называемых файлами истории. Термины
бинарный лог и файл истории в данном документе
считаются эквивалентными.
Разработка T-Hist была начата в 1996 году, первоначально
только для получения статистики мейлера T-Mail. В дальнейшем список
поддерживаемых мейлеров и форматов бинарных логов расширился. Последняя
версия T-Hist для DOS, OS/2 и NT (win32) –
0.30.alpha7 – была выпущена в 2003 году. После этого
процесс разработки остановился на 23 года.
В 2026 году работа над проектом была возобновлена. Выпущеные новые
версии T-Hist и сопутствующих утилит для Linux и Windows.
Поддержка старых операционных систем удалена.
Везде далее в документе под термином старые версии
понимается версия 0.30.alpha7 и более ранние версии
утилиты, а под термином новые версии – версии
1.x.x.
Утилиты распространяются в виде ZIP-архива, содержащего следующие каталоги:
linux – исполняемые файлы Linux для архитектур x86_64,
i686 и arm64;linux-static – исполняемые файлы Linux для архитектур
x86_64, i686 и arm64, скомпилированные со статическими
библиотеками;windows – исполняемые файлы для Windows 64-bit и
32-bit;doc – документация;binkd_patch – патчи для Binkd, добавляющие поддержку
бинарных логов формата T-Hist.Исполняемые файлы Linux, скомпилированные со статическими библиотеками, сжаты упаковщиком UPX 5.2.1 для уменьшения размера.
Каталог с документацией содержит:
T-Hist
и сопутствующих утилит;T-Hist (на
русском и английском языках);0.30.alpha7, приведённый в справочных целях.Кодировка текстовых файлов UTF-8.
Результатом работы T-Hist являются три текстовых
файла:
Все файлы имеют кодировку UTF-8. Если созданную статистику необходимо разместить в русскоязычной эхоконференции или нетмейле, преобразуйте файлы в кодировку CP866:
iconv -f UTF-8 -t CP866 in.txt -o out.txt
Помимо данных о числе и продолжительности сессий и трафике, таблицы со статистикой могут содержать дополнительные отметки, зависящие от того, бинарный лог какого формата/мейлера обрабатывается:
A, abrt – для оборванных сессий,
сессий с неудачным хэндшейком и иных сессий, завершившихся с ошибкой
(поддерживается мейлерами Binkd, qico 0.60.2+, T-Mail версии 2603 и
новее, Argus, Internet Rex, FrontDoor, BinkleyTerm-XE, KittenMail,
DVMmail, XMail32, BasicMail и любыми другими мейлерами, использующими
бинарные логи формата T-Hist или формата T-Mail версии 2603
и новее);P, pwd – для защищённых паролем
сессий и для линков, с которыми устанавливается защищённое паролем
соединение (поддерживается мейлерами qico 0.60.2+, T-Mail версии 2603 и
новее, Argus, Bink/+, FhMail, BinkleyTerm-XE, KittenMail, DVMmail,
XMail32, BasicMail и любыми другими мейлерами, использующими бинарные
логи формата T-Hist или формата T-Mail версии 2603 и
новее);L, lst – для линков,
присутствующих в нодлистах, указанных в конфигурации мейлера, и для
сессий с такими адресами (поддерживается мейлером qico 0.60.2+ и любыми
другими мейлерами, использующими бинарные логи формата
T-Hist).В конце каждого из создаваемых файлов выводится суммарная информация о числе и продолжительности всех входящих и исходящих сессий, суммарное число сессий и их продолжительность, объём полученного и переданного трафика и средний CPS, характеризующий скорость передачи/приёма данных (CPS – "chars per second", или, что то же самое, "bytes per second"). Если мейлер поддерживает отметку сессий, защищённых паролем, то в суммарной информации также выводятся значения для парольных и непарольных сессий.
Значения величин трафика могут выводиться в статистике с
использованием как единиц измерения, основанных на двоичных степенях
(KiB – 1,024 байт, MiB – 1,048,576 байт и
GiB – 1,073,741,824 байт), так и с использованием единиц
измерения, основанных на десятичных степенях (kB – 1,000
байт, MB – 1,000,000 байт и GB – 1,000,000,000
байт). Используемые единицы измерения задаются параметром
DecimalUnits в конфигурационном файле или опцией командной
строки -r. Чтобы не нарушать форматирование, обозначения
величин в статистике выводятся однобуквенными (K,
M, G), а после суммарной информации выводится
расшифровка, означают ли эти буквы двоичные единицы измерения
(KiB, MiB, GiB) или десятичные
(kB, MB, GB).
Длительность отдельных сессий и суммарная длительность сессий выводятся в статистике в одном из двух форматов:
HH:MM:SS, где HH –
число часов, MM – число минут, SS – число
секунд;DDdHHhMMm, DD –
число дней, HH – число часов, MM – число
минут.Интервалы времени больше 24 часов в суточной статистике могут
появляться при подсчёте суммарной длительности сессий на узлах с высокой
загрузкой, выполняющих одновременно несколько параллельных сессий. Также
большие суммарные длительности сессий могут быть в многодневной
статистике, создаваемой утилитой LnkStat, которая будет
рассмотрена ниже.
Если сессия в бинарном логе записана с длительностью 0 секунд, то при создании статистики ей присваивается длительность 1 секунда. Это позволяет корректно учитывать в статистике короткие сессии, длившиеся меньше 1 секунды. Записанное в бинарный лог нулевое значение длительности таких сессий в возникает из-за того, что интервалы времени задаются с точностью до секунды.
Ниже приведены примеры фрагментов файлов статистики, полученных на узле Alex Barinov (2:5020/715).
0 2 4 6 8 10 12 14 16 18 20 22 24
├─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┤Ses Rcvd Sent
2:5020/101 ▐ ▐ █▌ │█ █▐▐█▐▐█▐▐▐█▐█▐█▐▐▐▐▐▐█▐█▐▐█▐▐▐ █▐▐▐▐▐│277 3.7K 202K
2:5020/113 │▌ ▌▌▌ ▌ █ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐▐│ 28 14.9K 53.4K
2:5020/378 │ │ │ │▌ │ ▌│ ▐ │▌ │ ▌ ▌▌▌ ▌ ▌│ ▐ │ 11 2.4M 142K
2:5020/715.100 │ │ │ │ ▌ │ │ │ ▐│ │ │ │ │ │ 2 0 285K
2:5020/830 │▌ │▌ │▌ │▌ │▌ │▌ │███▐█ ▐▐▌█ ▐█ ▐│▌██▐▌▐▐│ 50 300K 1.2M
2:5020/1200 │ │ │ │ │ │ │ │ ▐│ │ ▌ ▌ ▐▐▐ │ 6 1290M 5.7M
2:5020/1477 │█ │▐▌ │ █▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐█▐█▐▐▐▐▐▐▐│365 0 333M
2:5020/1668 │ │ │ │ ▐│ │▐ │▐ ▐│ │▐ │ ▐│ │▐ │ 8 0 90.1K
2:5020/3452 ▐▌ │▌ │█ │▐ │ │▐ │ │ ▐│ █ ▐ │ │ │306 0 55.3K
2:5020/4096 ▐▌▐ ▐ │ ▐▌▐▌▐ ▐ ▐ ▐▌▐▌▐▌▐ ▐ ▐▐▐ █ ▐▌▐▐▐ █▐▐ ▐ │138 0 161K
2:5020/9696 │▐▌ │ ▌ │ ▌ │ █▐▐ ▐▌▌▌ ▌████▐██▐▐█▐▌▐██▐▌███▐█▌▐│256 0 794M
[...]
Busy Histogram
100%┬ Rcvd: 1319M
▐▌ ▌ ▌ Sent: 10.9G
Sessions ▐▌ █ ▐▌ ▌ ─────────────
▐▌▐ ▐█ █▌ ▌ Average
Total: 19860 ▐▌▐ ▐█ █▌ ▌ CPS: 706.4K
──────────── ▐▌▐ ▐█ █▌ ▐ █ ▌ ─────────────
In: 2563 ▐▌▐ ▐█ █▌ ▐ █ ▌ ▐ Time Online:
Out: 17297 ▐▌▐▌▐█ ▐ █▌ ▐ █ █ ▐ 17:28:12
──────────── ▐██▌████▐██ █ █ █ ▐ ─────────────
Aborted:12970 ▐██▌████▐██▌▐█ ▐ ▌ ▐ ▐ █▐█ ▌▐ In: 1:51:38
Protect:7420 ▐██▌████▐███▐█▄▄▐█▐▄▐███████▐███▐███████████████▌ Out: 15:36:34
0%┼─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ ─────────────
0 2 4 6 8 10 12 14 16 18 20 22 24 Usage: 14.6%
[...]
После графика загрузки T-Hist может строить гистограмму
общей загрузки, а также гистограммы для входящих, исходящих, парольных и
непарольных сессий. Наличие или отсутствие той или иной гистограммы
определяется значением параметра BusyHist в
конфигурационном файле или опцией командной строки -b. Если
мейлер не сохраняет в бинарном логе отметку парольной сессии, то
гистограммы для парольных и непарольных сессий строиться не будут
независимо от значения параметра BusyHist или опции
-b.
Длительность интервала времени на оси абсцисс графика и гистограмм может превышать длительность интервала времени, для которого создаётся статистика. Длина графика в часах всегда является делителем числа 48 (это значения 1, 2, 3, 4, 6, 8, 12, 16 или 24 часа). Если длина интервала времени для создания статистики не совпадает ни с одним из эти чисел, то длина интервала времени на оси абсцисс графика и гистограмм будет определяться в соответствие со следующей таблицей:
| Длительность интервала для создания статистики в часах ( X) |
Длительность интервала на оси абсцисс в часах |
|---|---|
0 < X ≤ 1 |
1 |
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 |
При этом использоваться будет только та часть графика, которая соответствует интервалу времени для создания статистики.
Процент загрузки FTN-системы (значение Usage у
гистограммы общей загрузки) для мейлеров, не имеющих возможность
выполнять одновременно несколько сессий (обычно это dial-up мейлеры),
вычисляется как отношение суммарной продолжительности всех сессий к
интервалу времени, для которого создаётся статистика:
суммарная продолжительность всех сессий
----------------------------------------- * 100%.
интервал времени для статистики
Для мейлеров, способных выполнять одновременно несколько сессий
(обычно это IP-мейлеры), процент загрузки вычисляется с учетом
максимально возможного числа одновременно выполняющихся входящих
(N) и исходящих (M) сессий:
суммарная продолжительность всех сессий 100%
----------------------------------------- * -------.
интервал времени для статистики N + M
Зачения N и M задаются при описании
бинарного лога в конфигурационном файле (см. параметр
History) или при указании бинарного лога в командной
строке.
╔══════════════════╦═══════════════════════════╦═════════╦═════════════╦══════╗ ║ ║ Sessions / Time ║ Time ║ Traffic ║ CPS ║ ║ Address ╠═════════════╦═════════════╣ online ╠══════╦══════╣ bytes║ ║pwd ║ Incoming ║ Outgoing ║ In+Out ║ Rcvd ║ Sent ║ /sec ║ ╠│═════════════════╬═══╤═════════╬═══╤═════════╬═════════╬══════╬══════╬══════╣ ║√ 2:5020/101 ║ 43│ 0:02:10 ║234│ 0:13:11 ║ 0:15:21 ║ 3.7K║202.2K║ 1.2K║ ║√ 2:5020/113 ║ 28│ 0:04:49 ║ -│ -:--:-- ║ 0:04:49 ║ 14.9K║ 53.4K║ 999║ ║√ 2:5020/378 ║ 11│ 0:00:18 ║ -│ -:--:-- ║ 0:00:18 ║ 2.4M║142.4K║191.8K║ ║√ 2:5020/715.100 ║ 2│ 0:00:03 ║ -│ -:--:-- ║ 0:00:03 ║ 0║284.9K║ 94.9K║ ║√ 2:5020/830 ║ -│ -:--:-- ║ 50│ 0:03:26 ║ 0:03:26 ║299.6K║ 1.2M║ 68.0K║ ║√ 2:5020/1200 ║ 4│ 0:09:09 ║ 2│ 0:00:02 ║ 0:09:11 ║ 1290M║ 5.7M║ 2.3M║ ║√ 2:5020/1477 ║ 39│ 0:01:08 ║326│ 0:17:30 ║ 0:18:38 ║ 0║333.1M║ 1.7M║ ║√ 2:5020/1668 ║ 8│ 0:00:41 ║ -│ -:--:-- ║ 0:00:41 ║ 0║ 90.1K║ 22.5K║ ║√ 2:5020/3452 ║ -│ -:--:-- ║306│ 0:12:20 ║ 0:12:20 ║ 0║ 55.3K║ 13.8K║ ║√ 2:5020/4096 ║ 19│ 0:00:19 ║119│ 0:10:40 ║ 0:10:59 ║ 0║160.5K║ 2.8K║ ║√ 2:5020/9696 ║ -│ -:--:-- ║256│ 0:18:03 ║ 0:18:03 ║ 0║793.7M║ 1.3M║ [...]
╔════════════╤═════╤════════════════════╤══════════╤═════════════════╤════════╗ ║ Session │ Dir │ Address │ Time │ Traffic │ CPS ║ ║ start │ │pwd abrt│ Online │ Rcvd Sent │ bytes/s║ ╠════════════╪═════╪│══════════════════│╪══════════╪════════╤════════╪════════╣ ║ 00:00:04 │ Out │√ 2:301/1 │ 0:00:12 │ 5773 │ 0 │ 481 ║ ║ 00:00:18 │ Out │ 2:5020/5452 A│ 0:00:01 │ 0 │ 0 │ 0 ║ ║ 00:00:18 │ Out │√ 2:5001/100 │ 0:00:01 │ 0 │ 1462 │ 1.4K ║ ║ 00:00:18 │ Out │√ 2:5051/44 │ 0:00:01 │ 0 │ 1459 │ 1.4K ║ ║ 00:06:03 │ Out │√ 2:46/49 │ 0:00:02 │ 0 │ 2207 │ 1.0K ║ ║ 00:05:52 │ Out │√ 2:301/1 A│ 0:00:43 │ 0 │ 5102 │ 118 ║ ║ 00:10:17 │ Out │√ 2:5030/115 │ 0:00:01 │ 0 │ 678 │ 678 ║ ║ 00:09:40 │ Out │√ 2:5020/2992 A│ 0:01:07 │ 0 │ 11353 │ 169 ║ ║ 00:16:15 │ Out │√ 2:6078/1 │ 0:00:27 │ 0 │ 21312 │ 789 ║ ║ 00:16:37 │ Out │√ 2:5030/1115 │ 0:00:42 │ 0 │ 22459 │ 534 ║ ║ 00:17:24 │ Out │√ 2:5020/4096 │ 0:00:07 │ 0 │ 22448 │ 3.1K ║ ║ 00:17:34 │ Out │√ 2:5090/138 │ 0:00:16 │ 0 │ 23130 │ 1.4K ║ ║ 00:17:44 │ Out │√ 2:5001/100 │ 0:00:36 │ 0 │ 58762 │ 1.5K ║ [...]
┌──────────────────────────┬───────────────────────┬──────────────────────────┐ │ Total Received : 276.9M │ Total Ses In : 3299 │ Time In : 1:09:05 │ │ Total Sent : 2066M │ Total Ses Out : 8821 │ Time Out : 3:33:57 │ │ Total Traffic : 2343M │ Total Sessions: 12129 │ Time Online : 4:43:32 │ ├──────────────────────────┼───────────────────────┼──────────────────────────┤ │ Protected Rcvd : 276.9M │ Prot Ses In : 3296 │ Protected In : 1:09:02 │ │ Protected Sent : 2066M │ Prot Ses Out : 5609 │ Protected Out: 2:39:17 │ │ Protected Total: 2343M │ Prot Ses Total: 8905 │ Protected Tot: 3:48:19 │ ├──────────────────────────┼───────────────────────┼──────────────────────────┤ │ UnProt Received: 0 │ UnProt Ses In : 3 │ UnProt In : 0:00:03 │ │ UnProt Sent : 0 │ UnProt Ses Out: 3212 │ UnProt Out : 0:54:40 │ │ UnProt Total : 0 │ UnProt Ses Tot: 3224 │ UnProt Total : 0:55:13 │ └──────────────────────────┴───────────────────────┴──────────────────────────┘ K is KiB (1024 bytes), M is MiB (1048576 bytes), G is GiB (1073741824 bytes)
Старые версии T-Hist и сопутствующих утилит содавали
файлы статистики со строками, длина которых не превышала 80 символов. В
новых версиях появился режим широкого экрана, который включен по
умолчанию. В этом режиме справа от графика загрузки и от таблиц со
статистикой может выводиться дополнительная текстовая информация,
которая есть в бинарных логах некоторых мейлеров, или описание адресов,
которое можно задавать в параметрах Addr в конфигурационном
файле. Ниже приведены примеры фрагментов статистики, созданной в режиме
широкого экрана.
0 2 4 6 8 10 12 14 16 18 20 22 24
├─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┼─┴─┤Ses Rcvd Sent FTN-system info
2:5020/101 ▐ ▐ █▌ │█ █▐▐█▐▐█▐▐▐█▐█▐█▐▐▐▐▐▐█▐█▐▐█▐▐▐ █▐▐▐▐▐│277 3.7K 202K │ n5020.ru, akf, Moscow, USSR
2:5020/113 │▌ ▌▌▌ ▌ █ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐ ▐▐│ 28 14.9K 53.4K │ Minas Anor, Moscow, Russia
2:5020/378 │ │ │ │▌ │ ▌│ ▐ │▌ │ ▌ ▌▌▌ ▌ ▌│ ▐ │ 11 2.4M 142K │ 92.36.120.111, klug, Moscow, Russia
2:5020/715.100 │ │ │ │ ▌ │ │ │ ▐│ │ │ │ │ │ 2 0 285K │ FidoMailMobile, Zheleznodorozhny
2:5020/830 │▌ │▌ │▌ │▌ │▌ │▌ │███▐█ ▐▐▌█ ▐█ ▐│▌██▐▌▐▐│ 50 300K 1.2M │ 830.ru, TITANIC Station IP, Moscow, Russia
2:5020/1200 │ │ │ │ │ │ │ │ ▐│ │ ▌ ▌ ▐▐▐ │ 6 1290M 5.7M │ MetNet Information Center, Moscow, Russia
2:5020/1477 │█ │▐▌ │ █▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐▐█▐█▐▐▐▐▐▐▐│365 0 333M │ m0d3m's_station, Moscow--Russia
2:5020/1668 │ │ │ │ ▐│ │▐ │▐ ▐│ │▐ │ ▐│ │▐ │ 8 0 90.1K │ First Encounters/Binkp, CCCP, Moscow, Russia
2:5020/3452 ▐▌ │▌ │█ │▐ │ │▐ │ │ ▐│ █ ▐ │ │ │306 0 55.3K │ fido.babon.ru, Panzer station II, Moscow, Russia
2:5020/4096 ▐▌▐ ▐ │ ▐▌▐▌▐ ▐ ▐ ▐▌▐▌▐▌▐ ▐ ▐▐▐ █ ▐▌▐▐▐ █▐▐ ▐ │138 0 161K │ fido.pochek.net, 4K_System, Moscow, Russia
2:5020/9696 │▐▌ │ ▌ │ ▌ │ █▐▐ ▐▌▌▌ ▌████▐██▐▐█▐▌▐██▐▌███▐█▌▐│256 0 794M │ skovpen.org, SDS, Moscow, Russia
[...]
╔══════════════════╦═══════════════════════════╦═════════╦═════════════╦══════╗ ║ ║ Sessions / Time ║ Time ║ Traffic ║ CPS ║ ║ Address ╠═════════════╦═════════════╣ online ╠══════╦══════╣ bytes║ ║pwd ║ Incoming ║ Outgoing ║ In+Out ║ Rcvd ║ Sent ║ /sec ║ ╠│═════════════════╬═══╤═════════╬═══╤═════════╬═════════╬══════╬══════╬══════╣ ║√ 2:5020/101 ║ 43│ 0:02:10 ║234│ 0:13:11 ║ 0:15:21 ║ 3.7K║202.2K║ 1.2K║ n5020.ru, akf, Moscow, USSR ║√ 2:5020/113 ║ 28│ 0:04:49 ║ -│ -:--:-- ║ 0:04:49 ║ 14.9K║ 53.4K║ 999║ Minas Anor, Moscow, Russia ║√ 2:5020/378 ║ 11│ 0:00:18 ║ -│ -:--:-- ║ 0:00:18 ║ 2.4M║142.4K║191.8K║ 92.36.120.111, klug, Moscow, Russia ║√ 2:5020/715.100 ║ 2│ 0:00:03 ║ -│ -:--:-- ║ 0:00:03 ║ 0║284.9K║ 94.9K║ FidoMailMobile, Zheleznodorozhny ║√ 2:5020/830 ║ -│ -:--:-- ║ 50│ 0:03:26 ║ 0:03:26 ║299.6K║ 1.2M║ 68.0K║ 830.ru, TITANIC Station IP, Moscow, Russia ║√ 2:5020/1200 ║ 4│ 0:09:09 ║ 2│ 0:00:02 ║ 0:09:11 ║ 1290M║ 5.7M║ 2.3M║ MetNet Information Center, Moscow, Russia ║√ 2:5020/1477 ║ 39│ 0:01:08 ║326│ 0:17:30 ║ 0:18:38 ║ 0║333.1M║ 1.7M║ m0d3m's_station, Moscow--Russia ║√ 2:5020/1668 ║ 8│ 0:00:41 ║ -│ -:--:-- ║ 0:00:41 ║ 0║ 90.1K║ 22.5K║ First Encounters/Binkp, CCCP, Moscow, Russia ║√ 2:5020/3452 ║ -│ -:--:-- ║306│ 0:12:20 ║ 0:12:20 ║ 0║ 55.3K║ 13.8K║ fido.babon.ru, Panzer station II, Moscow, Russia ║√ 2:5020/4096 ║ 19│ 0:00:19 ║119│ 0:10:40 ║ 0:10:59 ║ 0║160.5K║ 2.8K║ fido.pochek.net, 4K_System, Moscow, Russia ║√ 2:5020/9696 ║ -│ -:--:-- ║256│ 0:18:03 ║ 0:18:03 ║ 0║793.7M║ 1.3M║ skovpen.org, SDS, Moscow, Russia [...]
╔════════════╤═════╤════════════════════╤══════════╤═════════════════╤════════╗ ║ Session │ Dir │ Address │ Time │ Traffic │ CPS ║ ║ start │ │pwd abrt│ Online │ Rcvd Sent │ bytes/s║ ╠════════════╪═════╪│══════════════════│╪══════════╪════════╤════════╪════════╣ ║ 00:00:04 │ Out │√ 2:301/1 │ 0:00:12 │ 5773 │ 0 │ 481 ║ fnthub.abad1dea.to, Bufferzone, Zug, Switzerlan ║ 00:00:18 │ Out │ 2:5020/5452 A│ 0:00:01 │ 0 │ 0 │ 0 ║ fido.huba715.ru, New World ║ 00:00:18 │ Out │√ 2:5001/100 │ 0:00:01 │ 0 │ 1462 │ 1.4K ║ f100.5001.ru, Postmortem, Kemerovo ║ 00:00:18 │ Out │√ 2:5051/44 │ 0:00:01 │ 0 │ 1459 │ 1.4K ║ fido.pdp11.ru, Digital, Simbirsk--Russia ║ 00:06:03 │ Out │√ 2:46/49 │ 0:00:02 │ 0 │ 2207 │ 1.0K ║ fidotallinn.ddns.net, EEStation, Tallinn, Estonia ║ 00:05:52 │ Out │√ 2:301/1 A│ 0:00:43 │ 0 │ 5102 │ 118 ║ fnthub.abad1dea.to, Bufferzone, Zug, Switzerlan ║ 00:10:17 │ Out │√ 2:5030/115 │ 0:00:01 │ 0 │ 678 │ 678 ║ f115.spb.ru, EdgeCity, St.Petersburg, Russia ║ 00:09:40 │ Out │√ 2:5020/2992 A│ 0:01:07 │ 0 │ 11353 │ 169 ║ 2992.mooo.com, Donskoy, Haifa, Israel ║ 00:16:15 │ Out │√ 2:6078/1 │ 0:00:27 │ 0 │ 21312 │ 789 ║ Techno Music BBS, Kaliningrad, Russia ║ 00:16:37 │ Out │√ 2:5030/1115 │ 0:00:42 │ 0 │ 22459 │ 534 ║ f1115.n5030.z2.binkp.net, EdgeCity II, St.Petersburg, Russia ║ 00:17:24 │ Out │√ 2:5020/4096 │ 0:00:07 │ 0 │ 22448 │ 3.1K ║ fido.pochek.net, 4K_System, Moscow, Russia ║ 00:17:34 │ Out │√ 2:5090/138 │ 0:00:16 │ 0 │ 23130 │ 1.4K ║ f138.n5090.krnet.ru, SkyStation, Krasnoyarsk--Russia ║ 00:17:44 │ Out │√ 2:5001/100 │ 0:00:36 │ 0 │ 58762 │ 1.5K ║ f100.5001.ru, Postmortem, Kemerovo, Russia [...]
Не все мейлеры содержат в бинарных логах дополнительную информацию,
которая может быть выведена в виде текста. Например, в бинарных логах
мейлера Binkd такой информации нет. Если вы не задаёте описания к
адресам в параметрах Addr, то создаваемая для Binkd
статистика будет иметь ширину не более 80 символов даже в режиме
широкого экрана.
Но некоторые из поддерживаемых мейлеров содержат в бинарных логах
текстовую информацию о FTN-системах, с которыми проводились сессии, или
информацию о протоколе соединения, или диагностические сообщения. К
таким мейлерам относятся: qico 0.60.2+, Internet Rex, FrontDoor, Bink/+,
FhMail, BinkleyTerm-XE, KittenMail, The Brake!, некоторые мейлеры с
логами в формате T-Mail версии 2603 и новее, и мейлеры, использующими
бинарные логи формата T-Hist. Для этих мейлеров текстовая
информация будет выводиться в режиме широкого экрана.
Для управления режимом широкого экрана используется параметр
WideScreen в конфигурационном файле или опция командной
строки -w.
Работа T-Hist и сопутствующих утилит управляется
параметрами, находящимися в конфигурационном файле. По умолчанию,
конфигурационный файл имеет имя t-hist.ctl и располагается
в текущем каталоге. Для указания другого конфигурационного файла или
запрета читать файл конфигурации используется опция командной строки
-c.
Имена и значения всех параметров регистронезависимые за исключением
имён файлов в Linux. Комментарии могут начинаться с символов
# и ;. Для использования русского текста в
комментариях и в параметрах, имеющих текстовые значения, используйте
кодировку UTF-8.
Конфигурационный файл состоит из секций [COMMON] и
[LINE]. В секции [COMMON] задаются общие для
всех бинарных логов параметры. В секциях [LINE] задаются
бинарные логи – по-одному на каждую секцию – и параметры, относящиеся
только к этому логу.
Директивы [LINE] и [COMMON] могут
присутствовать в конфигурационном файле многократно. Каждая новая
директива [LINE] начинает описание нового бинарного лога.
Каждая новая директива [COMMON] продолжает описание общих
параметров.
Список параметров конфигурационного файла T-Hist
по-алфавиту:
Addr, AdvancedCPS, BinkdAborted, BusyHist, CutHistory, Date, DecimalUnits, Group,
History, KeepAll, LinkStat, MiddLine, Name, NoDrawEmpty, Output, ProtectSummary,
SessionStat, ShowValue, SwapInOut, Time, TimeShift, WideScreen
(Параметр NoDrawEmpty в старых версиях назывался
NoDrawZero.)
Параметры BrakeSesStat и SupportNewFormat,
использовавшиеся в старых версиях, считаются устаревшим и игнорируются
при чтении конфигурационного файла.
Подробное описание всех параметров приведено в примере конфигурационного файла t-hist.ctl.
Параметры History и Name можно использовать
только в секциях [LINE]. Параметры
AdvancedCPS, BinkdAborted,
BusyHist, CutHistory, SwapInOut и
TimeShift можно использовать как в секциях
[LINE], так и в секции [COMMON]. Все остальные
параметры можно использовать только в секции [COMMON].
Если параметр можно использовать и в секциях [LINE], и в
секции [COMMON], то значение этого параметра, заданное в
секции [COMMON], применяется к тем бинарным логам, для
которых этот параметр не был задан в секции [LINE].
Если параметр не задан ни в конфигурационном файле, ни через опцию командной строки, то он получит значение по умолчанию, приведённое в следующей таблице:
| Параметр | Значение по умолчанию |
|---|---|
Output |
t-hist.out |
LinkStat |
t-hist.lnk |
SessionStat |
t-hist.ses |
Date |
сегодняшняя дата |
Time |
0:00:00-23:59:59 |
TimeShift |
0 |
CutHistory |
0 (не обрезать лог) |
Name |
пустая строка |
Addr |
*:*/*.* |
BinkdAborted |
In |
ShowValue |
Ses |
AdvancedCPS,
BusyHist,
Group,WideScreen |
Yes |
DecimalUnits,
KeepAll,MiddLine,
NoDrawEmpty,ProtectSummary,SwapInOut, |
No |
Часть параметров могут быть заданы без указания их значения. Список таких параметров и значения, которые им присваиваются если они заданы без значения, приведены в следующей таблице:
| Допустимо задавать без значения |
Значение, которое
будет использоваться |
|---|---|
Date |
сегодняшняя дата |
Time |
0:00:00-23:59:59 |
TimeShift |
Auto |
Name |
пустая строка |
Addr |
*:*/*.* |
AdvancedCPS,
BusyHist,DecimalUnits, Group,
KeepAll,MiddLine,
NoDrawEmpty,ProtectSummary,
SwapInOut,WideScreen |
Yes |
FTN-адреса, для которых создаётся статистика, задаются с помощью
параметров Addr и опций командной строки -a.
Формат параметра:
Addr <address> ["<description>"]
где
<address> – FTN-адрес вида
<Zone>:<Net>/<Node>.<Point>;<description> – необязательная текстовая строка с
описанием адреса, которая может выводиться справа от строки таблицы и
строки графика в режиме широкого экрана.Каждое из полей адреса <Zone>,
<Net>, <Node>,
<Point> – либо целое число от 0 до 32767
включительно, либо символ подстановки *, либо пусто.
Использование хотя бы одного символа подстановки * при
задании адреса делает этот адрес группой. Для каждого адреса из
бинарного лога, который соответствует хотя бы одной заданной группе,
будет создана строка таблицы линков и строка графика. Также сессии с
этим адресом будут учтены в групповой статистике для этой группы в
таблице групп и на графике для групп.
Замечание. В старых версиях для задания групп
использовался символ #, а символ подстановки *
имел другой смысл. В новых версиях символы * и
# считаются эквивалентными и задают группу. Для сохранения
совместимости со старыми версиями, символ # продолжает
корректно обрабатываться при парсинге адресов, но рекомендуется при
задании групп использовать только символ *, поскольку он
обладает очевидным смыслом символа подстановки.
Любое из полей <Zone>, <Net>,
<Node>, <Point> может быть
пропущено. Отсутствующие поля автоматически заменяются на символы
подстановки *, и адрес с пропущенными полями становится
группой. Например,
| Задано | Будет использовано |
|---|---|
Addr 2:5020/378 |
Addr 2:5020/378.* |
Addr 2:5020 |
Addr 2:5020/*.* |
Addr 2: |
Addr 2:*/*.* |
Addr 2:5020.378 |
Addr 2:5020/*.378 |
Addr 2:/378 |
Addr 2:*/378.* |
Addr 2:/.378 |
Addr 2:*/*.378 |
Addr 2:.378 |
Addr 2:*/*.378 |
Addr :5020/378 |
Addr *:5020/378.* |
Addr :5020.378 |
Addr *:5020/*.378 |
Addr :5020 |
Addr *:5020/*.* |
Addr 5020/ |
Addr *:5020/*.* |
Addr 5020/378 |
Addr *:5020/378.* |
Addr 5020.378 |
Addr *:*/5020.378 |
Addr /378.0 |
Addr *:*/378.0 |
Addr 378.0 |
Addr *:*/378.0 |
Addr 378 |
Addr *:*/378.* |
Addr :/. |
Addr *:*/*.* |
Addr :/ |
Addr *:*/*.* |
Addr :. |
Addr *:*/*.* |
Addr /. |
Addr *:*/*.* |
Addr : |
Addr *:*/*.* |
Addr / |
Addr *:*/*.* |
Addr . |
Addr *:*/*.* |
Addr |
Addr *:*/*.* |
Если в конфигурационном файле не задано ни одного параметра
Addr, то при генерации статистики будет использована группа
по умолчанию Addr *:*/*.* (или, что то же самое,
Addr All), охватывающая все адреса.
Можно исключать определенные адреса и группы адресов из статистики.
Для этого перед адресом нужно поставить символ !.
Например:
Addr !2:5020/378.1 – исключить из статистики адрес
2:5020/378.1;Addr !2:5020/378 – исключить из статистики группу
адресов 2:5020/378.*;Addr !2:*/9999.* – исключить из статистики группу
адресов 2:*/9999.*.Существуют предопределённые имена адресов и групп адресов, которые
можно использовать в параметрах Addr и опциях командной
строки -a (имена регистронезависимые):
Addr All – то же, что Addr *:*/*.*, то
есть группа, охватывающая все сессии (как удачные, так и неудачные) со
всеми адресами;
Addr Failed – подобно Addr All, но
только для неудачных сессий (оборванных; с неудачным хэндшейком;
завершившихся из-за какой-либо ошибки) с любыми адресами;
Addr Unresolved, Addr Undefined,
Addr Unknown, Addr None – то же, что
Addr 0:0/0.0, то есть любая сессия, завершившаяся неудачно
на этапе хэндшейка до того, как был определён FTN-адрес.
Группа Failed включает в себя адреса
Unresolved, Undefined, Unknown,
None.
Для получения статистики только по неудачным сессиям (оборванным
сессиям с известными адресами и сессиям с неопределённым из-за
неудачного хэндшейка адресом) используйте единственный параметр
Addr Failed в конфигурационном файле или единственную опцию
командной строки -afailed при работе без конфигурационного
файла.
Для получения суммарной статистики по неудачным сессиям в составе
общей статистики по всем сессиям, добавьте Addr Failed к
другим параметрам Addr в конфигурационном файле. Наиболее
простой вариант:
Addr All
Addr Failed
Если наоборот нужно исключить все неудачные сессии из статистики, используйте вариант:
Addr !Failed
Addr All
Порядок задания адресов с помощью параметров Addr
неважен. Независимо от того, в каком порядке заданы адреса и группы
адресов, при создании статистики они будут отсортированы от менее общих
к более общим. При этом исключаемые адреса и группы адресов будут
размещены в начале списка, а адреса, совпадающие с исключаемой группой,
удалятся. Повторные задания одних и тех же адресов будут игнорироваться.
Например, если в конфигурационном файле задано:
Addr 2:5020/*.*
Addr 2:5020/378.0
Addr *:*/*.*
Addr 2:5020/378.0
Addr 2:*/*.*
Addr 2:5020/1132.0
Addr 2:5020/408.0
Addr !2:5020/1132.*
Addr Failed
Addr !*:*/*.666
Addr 2:5020/715.*
Addr All
Addr 2:5020/1132.0
Addr !2:5020/408.0
то при создании статистики будет использоваться вот такой список адресов:
Addr !2:5020/408.0
Addr !2:5020/1132.*
Addr !*:*/*.666
Addr 2:5020/378.0
Addr 2:5020/715.*
Addr 2:5020/*.*
Addr 2:*/*.*
Addr All
Addr Failed
Во время создания статистики для каждой прочитанной из бинарного лога
сессии производится просмотр отсортированного списка адресов от начала к
концу. Если адрес совпадёт с исключаемым из статистики, просмотр
прекратится, и сессия будет проигнорирована. Иначе для каждого заданного
параметрами Addr или опциями -a адреса, с
которым совпадёт прочитанный из бинарного лога адрес, будет добавлена
информация об обрабатываемой сессии. После совпадения с неисключаемым
адресом процесс не прерывается, и список адресов продолжает
просматриваться до конца. Это позволяет учесть обрабатываемую сессию
сразу в нескольких групповых статистиках. Например, для списка
адресов:
Addr !2:5020/1132.0
Addr 2:5020/378.0
Addr 2:5020/*.*
Addr 2:*/*.*
Addr All
Addr Failed
все сессии с адресом 2:5020/378.0 будут учтены не только в отдельной статистике для этого адреса, но и в групповой статистике сессий с адресами из сети 2:5020, в групповой статистике сессий с адресами из второй зоны и в групповой статистике сессий с любыми адресами. Кроме того, неудачные сессии с адресом 2:5020/378.0 будут отдельно учтены в групповой статистике неудачных сессий. А сессии с адресом 2:5020/1132.0 будут полностью игнорироватся.
Помимо конфигурационного файла, бинарные логи и параметры их
обработки могут быть заданы в командной строке. Формат командной строки
T-Hist следующий:
t-hist [option]... [binary-log]...
Здесь binary-log – имя файла бинарного лога,
option – опция командной строки. Может быть задано
несколько имён файлов бинарных логов, в том числе и ни одного. Опций так
же может быть несколько, в том числе и ни одной. Порядок указания опций
и имён бинарных логов неважен – они могут располагаться в командной
строке в любом порядке.
Бинарные логи, заданные в командной строке, будут обработаны совместно с бинарными логами, заданными в конфигурационном файле. А значения параметров, заданные с помощью опций командной строки, будут переопределять значения параметров в конфигурационном файле.
Для получения списка опций любой из утилит проекта
T-Hist используется одна из опций: -h,
--help, -help, -?.
Почти все опции командной строки T-Hist соответствуют
параметрам конфигурационного файла. Если какой-либо из параметров задан
и в конфигурационном файле, и с помощью соответствующей опции командной
строки, то при обработке всех бинарных логов будет использоваться
значение из командной строки. Исключением из этого правила являются
параметр Addr и соответствующая ему опция -a:
адреса, заданные в командной строке, не переопределяют адреса из
параметров Addr конфигурационного файла, а дополняют
их.
При задании опций не должно быть пробелов между символом опции и
значением. Например, если нужно с помощью некоторой опции
-x задать значение <val>, то правильным
вариантом будет -x<val>, а вариант
-x <val> будет ошибочным.
Опция -c. Позволяет явно задать
конфигурационный файл или указать, что следует работать без файла
конфигурации. Допустимые варианты:
-c<config-file> – задаёт имя конфигурационного
файла, который будет использоваться при создании статистики;-c, -c- – указывает, что следует
игнорировать конфигурационный файл даже если файл с именем
t-hist.ctl присутствует в текущем каталоге (фактически, при
задании пустой опции -c или -c- версии утилит
для Linuх при чтении конфигурационного файла будут обращаться к
/dev/null, а версии для Windows – к nul).Опция -o. Соответствует параметру
Output и позволяет задать имя выходного файла с графиком и
гистограммами загрузки FTN-системы. Правила задания имени файла такие
же, как у параметра Output, включая возможность подстановки
в имя файла полей даты и времени с помощью соответствующих
спецификаторов форматов. Запретить создание файла с графиком и
гистограммами можно с помощью пустой опции -o или
-o-. В этом случае версии T-Hist для Linux
будут выводить соответствующую статистику в /dev/null, а
версии для Windows – в nul.
Опция -l. Соответствует параметру
LnkStat и позволяет задать имя выходного файла со
статистикой линков. Правила задания имени файла такие же, как у
параметра LnkStat. Запретить создание файла со статистикой
линков можно с помощью пустой опции -l или
-l-.
Опция -e. Соответствует параметру
SessionStat и позволяет задать имя выходного файла со
статистикой сессий. Правила задания имени файла такие же, как у
параметра SessionStat. Запретить создание файла со
статистикой сессий можно с помощью пустой опции -e или
-e-.
Опция -d. Соответствует параметру
Date и позволяет задать дату, для которой нужно создать
статистику. Правила задания даты такие же, как у параметра
Date. Примеры использования опции:
-d15.10.2026 # 15 октября 2026 года
-d1.6 # 1 июня текущего года
-d7..2026 # 7 число текущего месяца 2026 года
-d25 # 25 число текущего месяца и текущего года
-d1.-1 # 1 число предыдущего месяца
-d31.-1 # последнее число предыдущего месяца
-d20.-2 # 20 число предпредыдущего месяца
-d0 # текущая дата
-d # текущая дата
-d-1 # предыдущая дата ("вчера")
-d-2 # предпредыщущая дата ("позавчера")
-d-100 # за 100 дней до текущей датыОпция -t. Соответствует параметру
Time и позволяет задать интервал времени (не более 24
часов), для которого нужно создать статистику. Правила задания интервала
времени такие же, как у параметра Time. Примеры
использования опции:
-t0:30-7:30 # 0:30:00 - 7:30:00
-t0-8 # 0:00:00 - 8:00:00
-t:30-7::59 # 0:30:00 - 7:00:59
-t1 # 1:00:00 - 23:59:59
-t-8 # 0:00:00 - 8:00:00
-t # 0:00:00 - 23:59:59
-t0-0 # 0:00:00 - 23:59:59
-t0-24 # 0:00:00 - 23:59:59
-t23:30-7:30 # с 23:30:00 даты, предшествующей дате статистики,
# до 7:30:00 даты статистики
-t22-22 # с 22:00:00 даты, предшествующей дате статистики,
# до 22:00:00 даты статистикиОпция -a. Соответствует параметру
Addr и позволяет добавить адреса и группы к списку адресов,
для которых нужно создать статистику. Опция может быть указана
многократно. Правила задания адресов рассмотрены выше в разделе Правила задания
и обработки адресов. Примеры использования опции:
-a2:5020/378.* # Addr 2:5020/378.*
-a"2:5020\"Описание группы\"" # Addr 2:5020/*.* "Описание группы"
-a!2:5020/1132.0 # Addr !2:5020/1132.0
-anone # Addr 0:0/0.0
-a!Failed # Addr !Failed
-a # Addr *:*/*.*Опция -b. Соответствует параметру
BusyHist и позволяет указать, какие гистограммы следует
построить после графика загрузки. Допустимые варианты:
-b<mask> – эквивалентно
BusyHist <mask> (значения маски <mask> смотрите
в описании параметра BusyHist);-b, -b+ – эквивалентно
BusyHist Yes;-b- – эквивалентно BusyHist No.Опция -g. Соответствует параметру
Group и позволяет указать, выводить ли статистику для групп
адресов и отображать ли группы адресов на графике загрузки. Допустимые
варианты:
-g, -g+ – эквивалентно
Group Yes;-g- – эквивалентно Group No.Опция -k. Соответствует параметру
KeepAll и позволяет указать, отображать ли на графике и в
статистике линков все адреса и группы адресов, заданные параметрами
Addr, или только те, с которыми были сессии. Допустимые
варианты:
-k, -k+ – эквивалентно
KeepAll Yes;-k- – эквивалентно KeepAll No.Опция -m. Соответствует параметру
MiddLine и позволяет указать, разделять ли строки на
графике загрузки горизонтальной линией. Допустимые варианты:
-m, -m+ – эквивалентно
MiddLine Yes;-m- – эквивалентно MiddLine No;-mg – эквивалентно MiddLine Group.Опция -n. Соответствует параметру
NoDrawEmpty и позволяет указать, отмечать ли на графике и
учитывать ли при построении гистограмм "пустые" сессии, то есть сессии с
нулевым трафиком. Допустимые варианты:
-n, -n+ – эквивалентно
NoDrawEmpty Yes;-n- – эквивалентно NoDrawEmpty No.Опция -p. Соответствует параметру
ProtectSummary и позволяет указать, выводить ли в сумарной
информации в конце файлов статистики информацию по парольным и
непарольным сессиям. Допустимые варианты:
-p, -p+ – эквивалентно
ProtectSummary Yes;-p- – эквивалентно ProtectSummary No.Опция -r. Соответствует параметру
DecimalUnits и позволяет выбрать для вывода значений
трафика единицы измерения, основанные на десятичных степенях, или
основанные на двоичных степенях. Допустимые варианты:
-r, -r+ – эквивалентно
DecimalUnits Yes;-r- – эквивалентно DecimalUnits No.Опция -s. Соответствует параметру
ShowValue и позволяет указать, какую величину выводить
после каждой строки графика. Допустимые варианты:
-s, -ss – эквивалентно
ShowValue Ses;-st – эквивалентно ShowValue Time;-sc – эквивалентно ShowValue CPS.Опция -w. Соответствует параметру
WideScreen и позволяет управлять режимом широкого экрана.
Допустимые варианты:
-w, -w+ – эквивалентно
WideScreen Yes;-w- – эквивалентно WideScreen No;-w<N> – эквивалентно
WideScreen <N>.Опция -z. Соответствует параметру
TimeShift и позволяет задать смещение времени для каждой
обрабатываемой сессии. Допустимые варианты:
-z – эквивалентно TimeShift Auto;-z<N> – эквивалентно
TimeShift <N> (значение N может быть
отрицательным).Все утилиты могут работать без конфигурационного файла, если в командной строке задан хотя бы один файл бинарного лога. Значения параметров обработки определяются следующими правилами:
Если конфигурационный файл не указан явно с помощью опции
командной строки -c, и в текущем каталоге не был обнаружен
конфигурационный файл с именем t-hist.ctl, то будут
обработаны заданные бинарные логи, а все параметры, которые не были
заданы другими опциями командной строки, получат значения по
умолчанию.
Если конфигурационный файл указан явно с помощью опции командной
строки -c, или в текущем каталоге присутствует
конфигурационный файл с именем t-hist.ctl, то заданные
бинарные логи будут обработаны совместно с логами из конфигурационного
файла, а параметры, которые не были заданы другими опциями командной
строки, получат значения из конфигурационного файла.
Существует возможность запретить утилитам читать конфигурационный
файл t-hist.ctl даже если он присутствует в текущем
каталоге. Для этого используется опция командной строки -c
с пустым значением или со значением -. Например,
t-hist /var/log/fido/binlog1.dat /var/log/fido/binlog2.dat -с
# для бинарных логов /var/log/fido/binlog1.dat и
# /var/log/fido/binlog2.dat создать статистику
# за период времени 0:00:00-23:59:59 текущих суток,
# используя значения параметров по умолчанию
t-hist -с /var/log/fido/binkd.sts,0,1 -d-1 -t0-8 -r -bT -e
# для бинарного лога /var/log/fido/binkd.sts мейлера Binkd,
# выполняющего только исходящие сессии, создать статистику
# за период времени от 0 до 8 часов предыдущих суток;
# при выводе значений трафика использовать единицы измерения,
# основанные на десятичных степенях; после графика строить
# только гистограмму общей загрузки; не создавать файл со
# статистикой сессий
t-hist /var/log/fido/binlog.dat -с- -d31.-1 -o -afailed
# для бинарного лога /var/log/fido/binlog.dat создать статистику
# только неудачных сессий, которые происходили в последний день
# предыдущего месяца, при этом не создавать файл с графиком
# загрузки и гистограммами
(В приведённых примерах опцию -c, -c- можно
не указывать, если в текущем каталоге, где запущен T-Hist,
нет файла t-hist.ctl.)
Недостатком форматов бинарных логов всех мейлеров, поддерживаемых
старыми версиями T-Hist, является использование 32-битных
величин для записи информации о количестве отправленных и полученных
байт. В таких бинарных логах невозможно корректно сохранить информацию о
трафике, если во время сессии было отправлено или получено более 4
гигабайт.
Форматы бинарных логов этих мейлеров разрабатывались в эпоху dial-up, когда передать более 4 гигабайт за одну сессию было практически нереально. Но в эпоху Fido-over-IP и высокоскоростных сетей сессия с трафиком более 4 гигабайт – обычное явление, особенно на крупных раздающих хабах.
В новых версиях T-Hist и сопутствующих утилит
реализована поддержка нескольких версий собственного формата бинарных
логов с 64-битными значениями трафика и отметками времени. Разработчикам
FTN-мейлеров предлагается использовать бинарные логи собственного
формата T-Hist в своих программных продуктах. Помимо
корректного сохранения данных о сессиях с большими объёмами трафика,
формат позволяет сохранять текстовые строки с информацией о FTN-системах
и/или с диагностическими сообщениями, которые могут быть выведены в
статистике в режиме широкого экрана. Также формат T-Hist
позволяет записывать в бинарный лог отметку Listed для
сессий, FTN-адреса которых присутствуют в нодлистах, указанных в
конфигурации мейлера. Подробно все версии собственного формата бинарных
логов T-Hist рассмотрены в файле FORMATS-ru.md, находящемся в каталоге doc.
Бинарный лог формата T-Hist использует мейлер qico by Alexey Matrosov
(2:203/910), начиная с версии 0.60.2.
Существует возможность добавить поддержку бинарного лога формата
T-Hist к мейлеру Binkd. При этом "родной" бинарный лог
Binkd затронут не будет: новый бинарный лог будет записываться
одновременно с "родным". Для добавления к Binkd поддержки бинарного лога
формата T-Hist используйте один из патчей, находящихся в
каталоге binkd_patch. Подробнее об этих
патчах и алгоритме их применения читайте в файле BINKD-PATCH-ru.md.
Для удобства работы с разными форматами бинарных логов создан
конвертер HistConv, позволяющий для заданного бинарного
лога создать такой же лог в другом формате. Утилита
HistConv будет рассмотрена ниже в этом документе.
С обработки бинарных логов старого формата T-Mail началась в 1996
году история T-Hist. Бинарные логи этого формата не
содержат информацию о том, удачно ли завершилась сессия или была
оборвана, и была ли сессия защищена паролем или нет. Также в этих логах
нет какой-либо дополнительной текстовой информации. Поэтому для логов
старого формата T-Mail:
BusyHist;ProtectSummary.Поддерживается возможность обрезания бинарных логов при ненулевом
значении параметра CutHistory.
Бинарные логи мейлера Binkd – это особый случай бинарных логов старого формата T-Mail. Структура записей в логах Binkd полностью совпадает со структурой записей в логах T-Mail до версии 2603, но есть отличия в отметках статуса сессий:
Эти особенности требуют придерживаться следующих правил при задании бинарного лога Binkd в конфигурационном файле:
Задавать бинарный лог Binkd в параметре History
конфигурационного файла следует с явным указаним, что мейлер способен
одновременно проводить несколько сессий. Например:
History /var/log/fido/binkd.sts,2,4
Здесь задаётся бинарный лог мейлера Binkd, способного одновременно
проводить не более 2 входящих и не более 4 исходящих сессий. (Подробно
формат параметра History рассмотрен в примере
конфигурационного файла t-hist.ctl в каталоге
doc.)
Достаточно указания лишь одной запятой. Именно благодаря наличию
запятой после имени файла T-Hist отличает бинарный лог
Binkd от бинарного лога старого T-Mail. Например:
History /var/log/fido/binkd.sts,
Здесь задаётся бинарный лог мейлера Binkd, способного одновременно проводить не более 1 входящей и не более 1 исходящей сессии.
Необходимо использовать параметр SwapInOut Yes для
правильной обработки входящих и исходящих сессий.
Необходимо использовать параметр BinkdAborted In или
BinkdAborted Out для указания, считать ли оборванные сессии
входящими или исходящими (по умолчанию оборванные сессии Binkd считаются
входящими).
В статистике сессий для бинарных логов Binkd будут выводиться отметки
оборванных/неудачных сессий, но не будет отметок парольных сессий.
Гистограммы для парольных и непарольных сессий также строиться не будут
независимо от значения параметра BusyHist.
Поддерживается возможность обрезания бинарных логов при ненулевом
значении параметра CutHistory.
Бинарные логи нового формата T-Mail содержат отметки оборванных/неудачных сессий и отметки парольных сессий, поэтому для таких бинарных логов:
BusyHist;ProtectSummary.Поддерживается возможность обрезания бинарных логов при ненулевом
значении параметра CutHistory.
Помимо T-Mail, существуют и другие мейлеры, использующие этот формат бинарных логов. В частности, это мейлеры Argus, DVMmail, X-Mail32, BasicMail. Некоторые из мейлеров используют новый формат T-Mail "расширенно", сохраняя в бинарном логе текстовую информацию о FTN-системах, с которыми проводились сессии (сам T-Mail этого не делает). Эта текстовая информация, в случае её наличия, будет выводиться в статистике в режиме широкого экрана.
Мейлер qico, начиная
с версии 0.60.2, использует бинарный лог третьей версии собственного
формата T-Hist, обеспечивающий максимальный набор
возможностей при создании статистики:
Listed-адресами;Listed-адресами;BusyHist;ProtectSummary;CutHistory.Бинарные логи мейлера KittenMail содержат отметки оборванных/неудачных сессий и отметки парольных сессий. Кроме того, в этих логах содержится информация о протоколе соединения. Для логов KittenMail:
BusyHist;ProtectSummary;Поддерживается возможность обрезания бинарных логов при ненулевом
значении параметра CutHistory.
Бинарные логи мейлера BinkleyTerm-XE содержат отметки оборванных/неудачных сессий и отметки парольных сессий. Кроме того, в этих логах содержится текстовая информация о FTN-системах, с которыми проводились сессии (тип хэндшейка, имя системы, её локация, используемый мейлер, имя сисопа, номер телефона). Для логов BinkleyTerm-XE:
BusyHist;ProtectSummary;Обрезание бинарных логов BinkleyTerm-XE не поддерживается, параметр
CutHistory для них игнорируется.
Бинарные логи мейлера Bink/+ состоят из двух файлов:
.ihs для входящих сессий;.ohs для исходящих сессий.В параметре History при задании бинарных логов Bink/+
следует указывать только один из этих файлов (любой). После обработки
первого файла T-Hist автоматически будет пытаться открыть
второй файл. Имена у файлов (без расширений) должны совпадать, а
расширения должны быть .ihs и .ohs. Только
исходя из расширения у файла бинарного лога T-Hist
определяет направление обрабатываемых сессий.
В бинарных логах Bink/+ есть отметки парольных сессий, но нет отметок оборванных/неудачных сессий. Также в этих логах содержится текстовая информация об именах FTN-систем, с которыми проводились сессии, и их локациями. Для логов Bink/+:
BusyHist;ProtectSummary;Обрезание бинарных логов Bink/+ не поддерживается, параметр
CutHistory для них игнорируется.
Формат бинарных логов мейлера FhMail совместим с форматом логов
Bink/+. Так же, как и у Bink/+, эти логи состоят из двух файлов. Чтобы
T-Hist мог их корректно обрабатывать, необходимо, чтобы их
расширения были такими же, как у логов Bink/+, то есть .ihs
для входящих сессий и .ohs для исходящих сессий. Всё,
сказанное про логи мейлера Bink/+, справедливо и для бинарных логов
FhMail.
Бинарные логи мейлера Internet Rex имеют формат бинарных логов
мейлера FrontDoor (о котором будет сказано ниже) и состоят из двух
файлов: бинарный лог для входящих сессий и бинарный лог для исходящих
сессий. Чтобы T-Hist мог корректно их обрабатывать, файлы
должны иметь расширения .ihs для входящих сессий и
.ohs для исходящих сессий. В параметре History
при задании бинарных логов Internet Rex следует указывать только один из
этих файлов (любой). После обработки первого файла T-Hist
автоматически будет пытаться открыть второй файл.
В логах Internet Rex есть отметки оборванных/неудачных сессий, но нет отметок парольных сессий. Также в этих логах содержится текстовая информация об именах FTN-систем, с которыми проводились сессии, и их локациями. Для логов Internet Rex:
BusyHist;ProtectSummary;Обрезание бинарных логов Internet Rex не поддерживается, параметр
CutHistory для них игнорируется.
Всё, сказанное про бинарные логи мейлера Internet Rex, справедливо и
для мейлера FrontDoor, за исключением одной особенности. Бинарные логи
FrontDoor всегда имеют имена inbound.his и
outbound.his, но T-Hist сможет корректно их
обработать только если их расширения будут .ihs для
входящих сессий и .ohs для исходящих сессий, а имена без
расширений будут совпадать. Поэтому перед обработкой файлы логов
FrontDoor необходимо переименовать. В остальном всё, сказанное про логи
мейлера Internet Rex, справедливо и для бинарных логов FrontDoor.
T-Hist поддерживает формат бинарных логов мейлера The
Brake! версии 718Alfa7 и более новых. В этих логах нет ни отметок
оборванных/неудачных сессий, ни отметок парольных сессий, но есть
информация о типе хэндшейка и протоколе соединения. Для логов The
Brake!:
BusyHist;ProtectSummary;Обрезание бинарных логов The Brake! не поддерживается, параметр
CutHistory для них игнорируется.
Помимо записей о сессиях, бинарные логи The Brake! содержат также
записи о периодах ответа на звонки, набора номера, работы в терминале,
вызовах BBS, запуска внешних программ. Старые версии T-Hist
могли отображать эти периоды в статистике сессий, статистике линков и на
графике, учитывали при построении общей гистограммы загрузки и при
расчёте процента загрузки FTN-системы. Более подробно об этом читайте в
старом файле документации t-hist-old.txt от
версии 0.30.alpha7.
В новые версиях T-Hist обработка записей об этих
событиях и отображение их в статистике выполнялось в версиях
1.0.0 – 1.7.0. Начиная с версии
T-Hist 1.8.0, при обработке бинарных логов The
Brake! учитываются только записи о сессиях. Записи о всех других
событиях пропускаются.
В состав пакета T-Hist входит утилита
LnkStat, предназначенная для создания многодневной
статистики линков. В отличие от T-Hist, который создаёт
статистику для интервалов времени, не превышающих 24 часа,
LnkStat создаёт статистику для диапазона дат, заданного
опциями командной строки (по умолчанию: для диапазона дат всех сессий с
заданными адресами, прочитанных из обрабатываемых бинарных логов – от
даты самой старой сессии до даты самой новой сессии включительно).
Результатом работы LnkStat является таблица, аналогичная
таблице статистики линков, формируемой T-Hist. Различия
лишь в ширине некоторых столбцов и в отсутствии у LnkStat
отметок парольных и Listed линков. По умолчанию,
LnkStat выводит статистику в stdout, но можно
с помощью опции командной строки -o указать имя файла для
вывода статистики.
Ниже приведён пример фрагмента многодневной статистики линков,
полученных с помощью утилиты LnkStat на узле Alex Barinov
(2:5020/715).
From: 00:05:07, 07 September 2026, Monday
To : 00:05:15, 14 September 2026, Monday
╔════════════════╦═════════════════════════════╦═════════╦═════════════╦══════╗
║ ║ Sessions / Time ║ Time ║ Traffic ║ CPS ║
║ Address ╠══════════════╦══════════════╣ online ╠══════╦══════╣ bytes║
║ ║ Incoming ║ Outgoing ║ In+Out ║ Rcvd ║ Sent ║ /sec ║
╠════════════════╬════╤═════════╬════╤═════════╬═════════╬══════╬══════╬══════╣
║ 2:5020/101 ║ 336│ 0:05:36 ║ 373│ 0:06:13 ║ 0:11:49 ║ 747║570.4K║ 2.7K║
║ 2:5020/113 ║ 193│ 0:03:31 ║ -│ -:--:-- ║ 0:03:31 ║109.1K║337.8K║ 6.4K║
║ 2:5020/378 ║ 59│ 0:01:28 ║ -│ -:--:-- ║ 0:01:28 ║ 518║526.4K║ 8.4K║
║ 2:5020/715.100 ║ 60│ 0:01:04 ║ -│ -:--:-- ║ 0:01:04 ║ 4.2K║651.8K║ 21.8K║
║ 2:5020/830 ║ -│ -:--:-- ║ 160│ 0:02:42 ║ 0:02:42 ║ 0║415.5K║ 6.2K║
║ 2:5020/1200 ║ 28│ 0:04:08 ║ 52│ 0:00:55 ║ 0:05:03 ║822.5M║ 3.1M║ 3.0M║
║ 2:5020/1477 ║ 336│ 0:05:36 ║ 104│ 0:02:02 ║ 0:07:38 ║ 0║261.8M║ 3.4M║
║ 2:5020/1668 ║ 61│ 0:05:04 ║ -│ -:--:-- ║ 0:05:04 ║ 0║357.6K║ 2.3K║
║ 2:5020/3452 ║ -│ -:--:-- ║ 103│ 0:01:43 ║ 0:01:43 ║ 0║274.4K║ 4.7K║
║ 2:5020/4096 ║ 167│ 0:02:47 ║ 332│ 0:05:32 ║ 0:08:19 ║ 0║589.3K║ 3.3K║
║ 2:5020/9696 ║ 3│ 0:00:04 ║ 689│ 0:20:06 ║ 0:20:10 ║ 0║504.9M║481.8K║
[...]
Так же, как и T-Hist, утилита LnkStat может
работать в режиме широкого экрана, выводя справа от строк таблицы
текстовую информацию из бинарных логов или описания адресов из
параметров Addr.
По умолчанию, LnkStat использует тот же конфигурационный
файл t-hist.ctl, что и сам T-Hist. Из
парамеров конфигурационного файла для LnkStat имеют
значение:
History, Addr, AdvancedCPS, BinkdAborted, DecimalUnits,
Group, KeepAll, SwapInOut, TimeShift, WideScreen
Все остальные параметры игнорируются.
Формат командной строки LnkStat и правила её обработки
такие же, как у T-Hist. Опции командной строки
LnkStat позволяют задать:
stdout);Далее рассмотрим все опции утилиты LnkStat.
Опция -c. Аналогична такой же опции
T-Hist и позволяет явно задать конфигурационный файл или
указать, что следует работать без файла конфигурации. Допустимые
варианты:
-c<config-file> – задаёт имя конфигурационного
файла, который будет использоваться при создании статистики;-c, -c- – указывает, что следует
игнорировать конфигурационный файл даже если файл с именем
t-hist.ctl присутствует в текущем каталоге.Опция -o. Позволяет задать имя
выходного файла. Правила задания имени файла такие же, как у параметра
Output, включая возможность подстановки в имя файла полей
даты и времени с помощью соответствующих спецификаторов форматов.
Допустимые варианты:
-o<output-file> – задаёт имя выходного файла
статистики;-o – выводить статистику в stdout
(значение по умолчанию);-o- – не выводить статистику (в этом случае версии для
Linux будут выполнять вывод в /dev/null, а версии для
Windows – в nul).Опция -a. Соответствует параметру
Addr и позволяет добавить адреса и группы к списку адресов,
для которых нужно создать статистику. Опция может быть указана
многократно. Правила задания опции такие же, как у
T-Hist.
Опция -b. Позволяет задать
начальную дату для статистики. Правила задания такие же, как у параметра
Date. В статистике будут учитываться только те сессии,
которые начались не раньше момента времени 0:00:00 этой даты. Дата и
время "From" в заголовке статистики будут соответствовать самой первой
из таких сессий. Если опция не задана, то статистика будет начинаться с
момента начала самой старой сессии с адресами, указанными параметрами
Addr и опциями -a.
Опция -e. Позволяет задать конечную
дату для статистики. Правила задания такие же, как у параметра
Date. В статистике будут учитываться только те сессии,
которые начались не позднее момента времени 23:59:59 этой даты. Дата и
время "To" в заголовке статистики будут соответствовать самой последней
из таких сессий. Если опция не задана, то статистика будет заканчиваться
на самой последней сессии с адресами, указанными параметрами
Addr и опциями -a.
Опция -d. Позволяет задать
количество дней, начиная с начальной даты, для которых следует создать
статистику. Допустимые варианты:
-d<N> – создать статистику только за
N дней, начиная с начальной даты, где N –
положительное целое число;-d – создать статистику за все дни, начиная с начальной
даты (значение по умолчанию).Обычно опция -d используется вместе с -b.
Если одновременно задать опции -d и -e, то
опция -d будет проигнорирована, о чём в stderr
будет выведено предупреждающее сообщение.
Опция -g. Соответствует параметру
Group и позволяет указать, создавать ли статистику для
групп адресов. Допустимые варианты:
-g, -g+ – эквивалентно
Group Yes;-g- – эквивалентно Group No.Опция -k. Соответствует параметру
KeepAll и позволяет указать, отображать ли в статистике все
адреса и группы адресов, заданные параметрами Addr и
опциями -a, или только те, с которыми были сессии.
Допустимые варианты:
-k, -k+ – эквивалентно
KeepAll Yes;-k- – эквивалентно KeepAll No.Опция -r. Соответствует параметру
DecimalUnits и позволяет выбрать для вывода значений
трафика единицы измерения, основанные на десятичных степенях, или
основанные на двоичных степенях. Допустимые варианты:
-r, -r+ – эквивалентно
DecimalUnits Yes;-r- – эквивалентно DecimalUnits No.Опция -w. Соответствует параметру
WideScreen и позволяет управлять режимом широкого экрана.
Допустимые варианты:
-w, -w+ – эквивалентно
WideScreen Yes;-w- – эквивалентно WideScreen No;-w<N> – эквивалентно
WideScreen <N>.Опция -z. Соответствует параметру
TimeShift и позволяет задать смещение времени для каждой
обрабатываемой сессии. Допустимые варианты:
-z – эквивалентно TimeShift Auto;-z<N> – эквивалентно
TimeShift <N> (значение N может быть
отрицательным).Опция -u. Позволяет выбрать
кодировку, в которой следует выводить статистику. Допустимые
варианты:
-u, -u+ – использовать кодировку UTF-8
(значение по умолчанию);-u- – использовать 7-битную кодировку ASCII без
символов псевдографики.Примеры использования LnkStat:
lnkstat -b5 -e20
# создать статистику за период с 5 по 20 число текущего месяца
# для всех бинарных логов, указанных в конфигурационном файле
# t-hist.ctl
lnkstat -b5.10.2026 -d10
# создать статистику за 10 дней, начиная с 5.10.2026, для всех
# бинарных логов, указанных в конфигурационном файле t-hist.ctl
lnkstat -b-10
# создать статистику за последние 10 дней для всех бинарных логов,
# указанных в конфигурационном файле t-hist.ctl
lnkstat -b1.-1 -e31.-1
# создать статистику за предыдущий месяц для всех бинарных логов,
# указанных в конфигурационном файле t-hist.ctl
lnkstat -b1.-1 -d10
# создать статистику за первые 10 дней предыдущего месяца для всех
# бинарных логов, указанных в конфигурационном файле t-hist.ctl
lnkstat -d100
# создать статистику за первые 100 дней, начиная с даты самой
# первой сессии с адресами, указанными в параметрах Addr
# в конфигурационном файле t-hist.ctl
lnkstat /var/log/fido/binlog.dat -с -o/home/user/fido/lnkstat.txt -a2:5020/378.0 -u-
# игнорируя конфигурационный файл, создать статистику по всем
# сессиям с адресом 2:5020/378.0, записанным в бинарный лог
# /var/log/fido/binlog.dat, и сохранить статистику в файл
# /home/user/fido/lnkstat.txt в кодировке ASCII 7bit
lnkstat /var/log/fido/binlog.dat -с -b0
# игнорируя конфигурационный файл, создать статистику за текущие
# сутки для бинарного лога /var/log/fido/binlog.dat (вместо '-b0'
# с тем же результатом можно использовать просто '-b')
В последнем примере статистика создаётся только за одни сутки, что
эквивалентно использованию T-Hist со следующими
опциями:
t-hist /var/log/fido/binlog.dat -с -o -e
# создать за текущие сутки только статистику линков,
# а статистику сессий и график с гистограммами не создавать
В состав пакета T-Hist входит утилита
DmpHist, которая для каждого обрабатываемого бинарного лога
выводит в stdout все его записи в виде таблицы,
содержащей:
0:0/0.0);Listed-адресом).Перед таблицей выводится имя бинарного лога и его формат. После таблицы выводится расшифровка битов статуса сессий.
Ниже приведён пример фрагмента дампа бинарного лога мейлера Binkd,
полученного с помощью утилиты DmpHist на узле Alex Barinov
(2:5020/715).
File : /var/log/fido/binkd.sts
Format : Binkd (T-Mail old)
┌───────────────────┬──────────────────────────┬───────┬────────┬────────┬────┐
│ Address │ Session timestamp │Time(s)│Received│ Sent │PNOI│
├───────────────────┼──────────────────────────┼───────┼────────┼────────┼────┤
│ 2:5095/20.0 │ Thu Aug 6 06:00:01 2026 │ 0 │ 0 │ 0 │0010│
│ 2:5020/570.0 │ Thu Aug 6 06:00:02 2026 │ 4 │ 1289 │ 0 │0010│
│ 2:5020/1146.0 │ Thu Aug 6 06:00:07 2026 │ 1 │ 0 │ 1273 │0001│
│ 2:5001/100.0 │ Thu Aug 6 06:00:07 2026 │ 13 │ 0 │ 1275 │0001│
│ 2:5020/290.0 │ Thu Aug 6 06:00:11 2026 │ 12 │ 0 │ 0 │0010│
│ 0:0/0.0 │ Thu Aug 6 05:59:58 2026 │ 57 │ 0 │ 0 │0011│
│ 2:5020/921.0 │ Thu Aug 6 06:01:02 2026 │ 3 │ 0 │ 0 │0010│
[...]
│ 2:463/68.0 │ Fri Aug 7 00:15:39 2026 │ 1 │ 2323 │ 0 │0010│
│ 2:5051/44.0 │ Fri Aug 7 00:15:41 2026 │ 0 │ 0 │ 2328 │0001│
│ 2:5019/40.0 │ Fri Aug 7 00:15:46 2026 │ 0 │ 0 │ 0 │0010│
└───────────────────┴──────────────────────────┴───────┴────────┴────────┴────┘
Password protected session; not all mailers mark it ───────┘│││
No-error session (not aborted); not all mailers mark it ────┘││
Outgoing session ─────┘│
Incoming session ──────┘
Утилита DmpHist выводит информацию о сессиях в сыром
виде, без какой либо дополнительной обработки. В частности:
TimeShift, если он присутствует в
конфигурационном файле; время начала сессий выводится в точности так,
как оно записано в бинарном логе;SwapInOut, если он присутствует в
конфигурационном файле; биты статуса, соответствующие входящим и
исходящим сессиям, выводятся именно так, как они записаны в бинарном
логе;T-Hist и LnkStat, сессиям,
записанным в бинарный лог с длительностью 0 секунд, не присваивается
длительность 1 секунда.Бит статуса Listed выводится только для тех форматов
бинарных логов, которые поддерживают этот бит (все версии собственного
формата T-Hist).
Так же, как T-Hist и LnkStat, утилита
DmpHist может работать в режиме широкого экрана, выводя
справа от строк таблицы текстовую информацию из бинарных логов, если она
есть.
По умолчанию, DmpHist использует тот же конфигурационный
файл t-hist.ctl, что и сам T-Hist. В
конфигурационном файле для DmpHist имеют значение только
три параметра:
History, DecimalUnits, WideScreen
Все остальные параметры игнорируются.
Формат командной строки DmpHist и правила её обработки
такие же, как у T-Hist. Опции командной строки утилиты
DmpHist следующие:
Опция -c. Аналогична такой же опции
T-Hist и позволяет явно задать конфигурационный файл или
указать, что следует работать без файла конфигурации. Допустимые
варианты:
-c<config-file> – задаёт имя конфигурационного
файла, который будет использоваться при создании статистики;-c, -c- – указывает, что следует
игнорировать конфигурационный файл даже если файл с именем
t-hist.ctl присутствует в текущем каталоге.Опция -r. Соответствует параметру
DecimalUnits и позволяет выбрать для вывода значений
трафика единицы измерения, основанные на десятичных степенях, или
основанные на двоичных степенях. Допустимые варианты:
-r, -r+ – эквивалентно
DecimalUnits Yes;-r- – эквивалентно DecimalUnits No.Опция -w. Соответствует параметру
WideScreen и позволяет управлять режимом широкого экрана.
Допустимые варианты:
-w, -w+ – эквивалентно
WideScreen Yes;-w- – эквивалентно WideScreen No;-w<N> – эквивалентно
WideScreen <N>.Опция -u. Позволяет выбрать
кодировку для вывода информации. Допустимые варианты:
-u, -u+ – использовать кодировку UTF-8
(значение по умолчанию);-u- – использовать 7-битную кодировку ASCII без
символов псевдографики.Конвертер форматов бинарных логов HistConv позволяет для
заданного бинарного лога создать такой же лог в другом формате. Утилита
не использует конфигурационный файл. Имена исходного и целевого бинарных
логов и целевой формат задаются в командной строке:
histconv [option] source_file target_file
В качестве исходного может быть указан файл бинарного лога любого
мейлера, поддерживаемого T-Hist. Его формат будет определён
автоматически. Для выбора целевого формата используется опция командной
строки -f <format>, где <format> –
строка с именем формата. Допустимые целевые форматы бинарных логов и
соответствующие им имена для опции -f следующие:
THIST3,
T-HIST3, THIST-3, T-HIST-3,
T-HIST, THIST;THIST2,
T-HIST2, THIST-2, T-HIST-2;THIST1,
T-HIST1, THIST-1, T-HIST-1;TMAIL, T-MAIL, TMAIL-NEW,
T-MAIL-NEW;TMAILOLD, T-MAILOLD, TMAIL-OLD,
T-MAIL-OLD;BINKD.Если целевой формат не указан с помощью опции -f, то
бинарный лог будет сконвертирован в третью версию формата
T-Hist.
Все имена форматов регистронезависимые. Имена можно указывать как с
пробелами между -f и именем, так и без пробелов. Иначе
говоря, корректными будут оба следующих варианта: -f t-hist
и -fTHist.
Перед началом конвертации утилита HistConv выводит
информацию о формате исходного бинарного лога и о целевом формате.
Во время конвертации в целевой бинарный лог сохраняются только записи о сессиях. Записи о других событиях, которые могут присутствовать в бинарных логах некоторых мейлеров (например, записи о периодах набора номера, работе в терминале, запусках BBS и т.п.) пропускаются.
После завершения конвертации утилита HistConv выводит
число прочитанных из исходного бинарного лога записей, число записей,
сохранённых в целевом бинарном логе, и длину одной записи в целевом
бинарном логе. Если целевой формат использует записи переменной длины,
то выводится средняя длина записи.
Выражаю благодарность 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, послужившую прообразом для
оформления статистики линков; Alex Barinov (2:5020/715) за тестирование
новых версий T-Hist на своём узле; Alexey Matrosov
(2:203/910) за предложения по формату бинарных логов, помощь в обработке
значений времени и новые идеи для T-Hist; а также всех, чьи
идеи, предложения и помощь в разработке и тестировании позволили создать
и развивать этот проект.
Copyright (c) 2026 Mikhail Markovskiy (klug) 2:5020/378. All rights reserved.