23.06.2017
Эффективная Навигация М2М
Меню сайта
Категории раздела
CityBus [3]
Файлы посвященные работе в CityBus
BNComplex [14]
CyberFleet [16]
Прочее [8]
Прочее, что не вошло в другие разделы
Форма входа
Вход через Google
Вход через Вконтакте
Вход через Facebook
Партнеры
Реклама

Отправка почты, когда нет новых данных в poslog-ах
[ Скачать с сервера (2.6Kb) ] 19.06.2013, 17:14

Предыстория:

Наладив обмен с другими серверами, столкнулся с тем, что бы автоматически информировать админов в случае, если данные перестали приходить. Все приборы с данного сервера получали префикс 98.

Так как основная база данных у меня хранится на этом сервере в mdb (BNC версии 1.0), то самым простым способом анализа показалось использовать grep для подсчета количества строк по приборам с префиксом 98 во всем файле (файлы poslog пишутся по дням), и сравнении данного количества с моментом предыдущего запуска. Если количество координат не увеличилось, значит проблема с приемом координат.

Решение:

Написание скрипта на VBscript позволило решить все проблемы средствами только BNC-сервера, тем более что заготовки для подобного анализа были в других разных скриптах (подсчет количества строк по шаблону, отправка почты, работа с файлами и так далее).


Подробности:
Логи пишутся через службу логирования, настройка для poslog вот такая. 

[Log ID 0]
Log Path=C:\BNComplex\Logs\PosLogs\%y%m%d.log

Т.е. в каталог  C:\BNComplex\Logs\PosLogs\ попадают файлы с именем, типа 130619.log

потому строка запуска подсчета выглядит
strtorun="tcpg.cmd  """&BNPath&"\"&dtmYear&dtmMonth&dtmday&".log"""

путь же до каталога прописан в переменной 
BNPath="C:\BNComplex\Logs\PosLogs"

если у вас логи пишутся по дням, то строку нужно несколько модифицировать до:

strtorun="tcpg.cmd  """&BNPath&"\"&dtmday&".log"""

или подобного

файл tcpg.cmd ссылается на программу grep, которую ищет по пути:
"C:\BNComplex\Util\grep\grep\bin\grep.exe" - установите программу, и измените данный путь на тот, что используете вы.

В файле tcpg.cmd указывается шаблон поиска строк

set str=98.*

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

set str=.*

Но тогда, если честно, узнать количество строк можно и другим способом - здесь же фильтр по определенному шаблону использован, а не все строки подряд.

В каталоге так же размещен файл lastrun.ini, который содержит информацию о моменте дате последнего запуска, и количестве найденных по шаблону строк.

Запускать скрипт count.vbs лучше от имени администратора, по расписанию, предоставив пользователю полные права на каталог скрипта (запись) и каталог хранения логов (чтение).

Недостатки: 

Нагрузка на файловую систему по чтению строк с лога - хоть grep и быстр, как черт, но если запускать слишком часто - получите приличную нагрузку.

Примечание: для случая, когда для хранения базы данных BNC (NIS Platform) использована платформа SQL можно сделать более быстрое по скорости решение...

Похожие материалы
Категория: BNComplex | Добавил: logoff | Теги: NIS-Platform, слежение за координатами, BNComplex
Просмотров: 618 | Загрузок: 136 | Комментарии: 3 | Рейтинг: 0.0/0
Всего комментариев: 3
3  
Это скорее "пиналка" админа, на предмет, что надо смотреть логи. Как показывает практика, причины могут быть разные. От банальной "клиент не оплатил связь" и "клиент не оплатил наши услуги", до "забыли запустить службу", ну и ошибки их работы.

2  
Нашел ошибку в скриптах (tcpg.cmd), перезалил.
правильное его содержимое должно быть:
Цитата
set str=98.*
"C:\BNComplex\Util\grep\grep\bin\grep.exe"  -c -E -h "^%str%" %1%

1  
А по какой причине перестает идти передача прием/данных? Может имеет смысл искать соответствующие строки с ошибками в логах сендера/ресивера? 

P.S.: Замечено что под линукс grep еще шустрее(тема холиварная, лучше не развивать)

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
TOP 10 Популярное
1 Оборудование> Гранит-Навигатор 4.14
2 Оборудование> Абонентский терминал M2M Cyber GLX
3 Оборудование> Гранит-Навигатор 4.14: Настройка терминала
4 Прочее> "Красные" против "Синих" - статистка космических запусков России (СССР) и США
5 CyberFleet, CrossPoint> КиберФлит: Учет топлива при помощи датчиков
6 CyberFleet, CrossPoint> CyberFleet: Переустановка CyberFleet
7 Оборудование> M2M Cyber GLX: отправка команд
8 Прочее> SQL: CyberFleet: Занятие №3 Объединение таблиц Часть 1/2 (теория, inner join)
9 CyberFleet, CrossPoint> КиберФлит: Причины расхождения пробега по данным одометра и карте
10 CyberFleet, CrossPoint> КиберФлит: Подключаем карту Google
Наш опрос
Как вы учились работать с КиберФлит?
Всего ответов: 49
LogOff © 2017
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС