Не дождавшись ответа, решил сделать автоматический сбор логов о постановке/снятии сам.
Возможно не самый красивый вариант, но вдруг кому-то поможет.
Поскольку я не нашел таблицу соответствий кода события и его описания, я создал ее сам.
С помощью pgAdmin заходим в базу миража "mgs" - Схемы - public - Таблицы. Создаем новую таблицу event_desc c двумя колонками: event_subtype (тип integer) и description (тип character varying c длиной поля 256). В ограничениях указать в качестве первичного ключа колонку event_subtype. Заполняем таблицу event_desc. В первой строке: event_subtype - 13, description - НА ОХРАНЕ, во второй: event_subtype - 14, description - СНЯТ С ОХРАНЫ.
Пишем текстовый файл (miraj_log.sql) в котором будет скрипт сбора логов со всех нужных объектов. Для примера - это 2 объекта с номерами 30 и 36
miraj_log.sql :
- Код: Выделить всё
COPY (SELECT event.event_time AS "TIME",event_desc.description AS "DESCRIPTION",event.key_number AS "KEY_NUMBER",event.object_number AS "OBJECT_NUMBER",object.name AS "OBJECT_NAME" FROM event JOIN object ON event.object_id=object.object_id JOIN event_desc ON event.event_subtype=event_desc.event_subtype WHERE event_time>'2009-01-01 00:00:00' AND event_time<='2009-10-13 23:59:59' AND event_type=3 AND event.event_subtype IN (13,14) AND event.object_number=30 ORDER BY event_time) to 'C:/Events/30gsm.csv' delimiter ';' CSV header; SET client_encoding to 'win1251';
COPY (SELECT event.event_time AS "TIME",event_desc.description AS "DESCRIPTION",event.key_number AS "KEY_NUMBER",event.object_number AS "OBJECT_NUMBER",object.name AS "OBJECT_NAME" FROM event JOIN object ON event.object_id=object.object_id JOIN event_desc ON event.event_subtype=event_desc.event_subtype WHERE event_time>'2009-01-01 00:00:00' AND event_time<='2009-10-13 23:59:59' AND event_type=3 AND event.event_subtype IN (13,14) AND event.object_number=36 ORDER BY event_time) to 'C:/Events/36gsm.csv' delimiter ';' CSV header; SET client_encoding to 'win1251';
В дальнейшем можно менять временной интервал в том же WordPad путем Замены текста "event_time>'2009-01-01 00:00:00' AND event_time<='2009-10-13 23:59:59' " на нужный период.
Теперь рядом создаем командный файл log.bat для запуска этого скрипта.
log.bat :
- Код: Выделить всё
cd "C:\Program Files\PostgreSQL\8.3\bin\"
psql -h localhost -p 5432 -U root -d mgs -f "C:\miraj_log.sql"
Если список интересующих объектов меняется редко, достаточно изменить интересующий нас временной интервал, и запустить bat-файл, и все логи лягут в нужную папку, например C:\Events
Сами отчеты выглядят так:
- Код: Выделить всё
TIME DESCRIPTION KEY_NUMBER OBJECT_NUMBER OBJECT_NAME
01.08.2011 7:23 СНЯТ С ОХРАНЫ 3 36 ТОРГОВЫЙ КИОСК
01.08.2011 21:57 НА ОХРАНЕ 3 36 ТОРГОВЫЙ КИОСК
02.08.2011 7:22 СНЯТ С ОХРАНЫ 3 36 ТОРГОВЫЙ КИОСК
02.08.2011 21:57 НА ОХРАНЕ 3 36 ТОРГОВЫЙ КИОСК
03.08.2011 7:22 СНЯТ С ОХРАНЫ 3 36 ТОРГОВЫЙ КИОСК
03.08.2011 21:58 НА ОХРАНЕ 3 36 ТОРГОВЫЙ КИОСК
04.08.2011 7:21 СНЯТ С ОХРАНЫ 3 36 ТОРГОВЫЙ КИОСК
04.08.2011 21:32 НА ОХРАНЕ 3 36 ТОРГОВЫЙ КИОСК
05.08.2011 7:25 СНЯТ С ОХРАНЫ 3 36 ТОРГОВЫЙ КИОСК
05.08.2011 21:58 НА ОХРАНЕ 3 36 ТОРГОВЫЙ КИОСК
05.08.2011 21:58 СНЯТ С ОХРАНЫ 3 36 ТОРГОВЫЙ КИОСК
05.08.2011 21:58 НА ОХРАНЕ 3 36 ТОРГОВЫЙ КИОСК
06.08.2011 7:16 СНЯТ С ОХРАНЫ 3 36 ТОРГОВЫЙ КИОСК
Теперь с помощью программы mailsend можно автоматически их разослать по нужным e-mail собственников