> и может посоветуете как можно реализовать это сейчас. (например кроном менять
> настроки и ребутить сервер)
Кривенько, но можно.
В системном шедулере cron нужно определить 2 задания:
1) на ВЫКЛ. записи с камеры;
2) на ВКЛ. записи с камеры.
Каждое задание (скрипт) должен включать в себя 2 действия:
1) выполнение sql запроса на изменение параметра save_video в конфигурационной базе данных;
2) перезапуск или посылка сигнала reload демону avregd.
Ниже код пример скрипта выключающего запись камеры с номером 5:
[ BEGIN OF CODE ]
#!/bin/sh
# пример скрипта для типа динамического :-(
# изменения параметров avregd
# в случае ошибки любой из команд (внешних или внутренних)
# - прекращаем работу скрипта
set -e
CONF='/etc/avreg/avreg.conf'
MYSQLCL='mysql --defaults-extra-file=/etc/mysql/debian.cnf --default-character-set=utf8 --batch --no-beep'
AVREGDB=$(sed -n "s/^\s*db-name[^=]*=\s*[\"\']*\([^\"\']*\)[\"\']*\s*/\1/p" "$CONF" 2>/dev/null | tail -n1)
# изменяем параметры камер в базе в таблице CAMERAS
# можно изменять несколько параметров и по разным камерам
echo | $MYSQLCL --database="${AVREGDB:-avreg5_db}" << EOF
-- октл. детектор движения
replace into CAMERAS (BIND_MAC, CAM_NR, PARAM, VALUE, CHANGE_HOST, CHANGE_USER)
values('local', 5, 'motion_detector', '0', 'localhost', 'cron');
-- откл. запись видео
replace into CAMERAS (BIND_MAC, CAM_NR, PARAM, VALUE, CHANGE_HOST, CHANGE_USER)
values('local', 5, 'save_video', '0', 'localhost', 'cron');
EOF
# перезапускаем avregd только в случае, если он работает в данный момент
# если изменённые параметры не требуют restart, то можно и нужно заменить на reload
if /etc/init.d/avreg status >/dev/null ;then
/etc/init.d/avreg restart
fi
[ END OF CODE ]
Соотв. на включение нужен такой же скрипт, только VALUE = '1'.
Ну и крон их(скрипты) обоих.
--
Андрей Никитин
site: http://avreg.net
maillist: http://groups.google.com/group/avreg-users/