Нужно получить несколько независимых систем AVReg на одном видеосервере со следующими характеристиками:
Далее по тексту, такие независимые системы, будут называться учётными записями AVReg или профилями.
Такая конфигурация может быть востребована для:
В силу многих ограничений, название учётной записи AVReg не может быть совершенно произвольным:
Примеры (имена заключены в кавычки):
/home
».С помощью утилиты
adduser или GUI-средствами нужно создать
системных пользователей с именами максимально похожими на имена
учётных записей AVReg, например: lenina_137
и
mira_15
:
# adduser lenina_137 --ingroup avreg # adduser mira_15 --ingroup avreg $ ls -l /home/ drwxr-xr-x 2 lenina_137 avreg 4096 2011-03-01 12:19 lenina_137 drwxr-xr-x 2 mira_15 avreg 4096 2011-03-01 12:33 mira_15
/home
, файловую систему Ext4
или XFS и дисковые квоты
(quota
для ext4 или
xfs_quota для xfs)./home
» должен быть точкой
монтирования, а не обычным каталогом внутри корневой файловой
системы «/
».Если, как мы и рекомендовали выше, медиа-архивы всех учётных записей AVReg расположены на одном блочном устройстве, вам необходимо включить дисковые квоты.
Для не-корневой (/
) файловой системы это делается
через «/etc/fstab
», добавлением некоторых специальных
опций монтирования /home
.
/etc/fstab
/dev/md0 /home ext4 rw,nosuid,nodev,noexec,noatime,grpid,usrjquota=aquota.user,jqfmt=vfsv0 0 2
root
,/home
(см. lsof /home
),umount
/home
)mount
/home
).После этого установите следующие пакеты:
# aptitude install quota quotatool
Далее установите квоты для пользователей mira_15
и
lenina_137
, например с порогами soft/hard в 90МБ/100MБ
:
# quotatool -u mira_15 -b -q90m -l100m /home # quotatool -u lenina_137 -b -q90m -l100m /home $ repquota -a *** Report for user quotas on device /dev/sdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- lenina_137 -- 20 92160 102400 5 0 0 mira_15 -- 20 92160 102400 5 0 0
Ссылки по квотам для EXT3/EXT4:
/etc/fstab
/dev/md0 /home xfs rw,nosuid,nodev,noexec,noatime,grpid,usrquota 0 2
root
,/home
(см. lsof /home
),umount
/home
)mount
/home
).Далее установите квоты для пользователей mira_15
и
lenina_137
, например с порогами soft/hard в 90МБ/100MБ
:
# xfs_quota -x -c 'limit bsoft=90m bhard=100m mira_15' /home # xfs_quota -x -c 'limit bsoft=90m bhard=100m lenina_137' /home # xfs_quota -x -c 'report -h' /home 2>/dev/null User quota on /home (/dev/sdc1) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- lenina_137 16K 90M 100M 00 [------] mira_15 16K 90M 100M 00 [------]
Ссылки по квотам для XFS:
Исходя их требований нашей задачи (см. в самом начале) необходимо создание отдельных баз данных для каждой учётной записи AVReg.
При установке пакета avreg-common
автоматически
создаётся база данных c именем «avreg5_db
». Это
база для однопрофильной системы AVReg и идеологически
неверно использовать её для одной из учётных записей AVReg.
Базу «avreg5_db
» с предварительно очищенной таблицей
EVENTS удобно использовать как шаблон для создания создания новых
баз учётных записей (профилей). Это удобно и легко
делается в веб-интерфейсе пакета PhpMyAdmin
«Операции» → «Скопировать БД
в». Прим.: сначала нужно установить пакет
phpmyadmin
и зайти браузером по адресу http://localhost/phpmyadmin/
.
Если по каким-то причинам вы не хотите или не можете
использовать PhpMyAdmin, то для «консольного» способа создания баз
вам понадобиться интерпретатор mysql и 3 шаблонных
SQL файла
расположенных в каталоге
«/usr/share/doc/avreg-common/examples/sql
»:
create_db.sql
- создаёт базу данных (
create_tables.sql
- создаёт таблицы в
БД;data_template.sql
- наполняет таблицы
шаблонными данными.Например, для 2-х пользователей Lenina_137 и Mira_15 должны быть созданы сделующие базы данных:
mysql> show databases like "avreg5_db-%"; +-----------------------+ | Databases avreg5_db-% | +-----------------------+ | avreg5_db-Mira_15 | | avreg5_db-Lenina_137 | +-----------------------+
Удалите (в крайнем случае закомментировать) в основном
конфигурационном файле
«/etc/avreg/avreg.conf
» следующие частные
параметры приложений (т.е. расположенные внутри секций
«название_приложение { … }
») :
Затем нужно определить параметр disk-usage-cmd
в
секции avreg-unlink { … }
соответственно используемой
файловой системы (для чего - см. в описании к
disk-usage-cmd
).
/etc/avreg/avreg.conf
... avreg-unlink { ... # при установленном пакете quotatool подходит и для EXT4 и для XFS disk-usage-cmd = "quotatool -b -u @USER -d @MNTPOINT | awk '{ print $3,$5 }'" ... }
Для каждой учётной записи AVReg необходимо создать свой
конфигурационный файл - профиль. Для
этого в каталоге профилей
«/etc/avreg/profiles
» нужно создать файлы
с именами учётных записей и следующим содержимым (см.
распечатки ниже).
Например:
$ cd /etc/avreg/profiles $ ls -l [A-Za-z0-9_-:]* -rw-r--r-- 1 root root 167 2008-02-16 17:56 Mira_15 -rw-r--r-- 1 root root 170 2008-02-16 17:56 Lenina_137
$ cat Mira_15
server-name = "ЖЭУ 4, дом ул.Мира 15" admin-name = "ФИО ИТ админа" ; admin-mail = "your@email" ; admin-tel = "+7 111 222 333" db-name = "avreg5_db-Mira_15" storage-dir = "/home/mira_15" user = "mira_15" avregd { # можно привязать к определённому cpu ; cpu = 7 # порт, с которого будет раздаваться видео http-port = 876 } avreg-site { avregd-httpd = 'http://$_SERVER[SERVER_NAME]:876' }
$ cat Lenina_137
server-name = "УК Дом, дом ул.Ленина 137" admin-name = "ФИО ИТ админа" ; admin-mail = "your@email" ; admin-tel = "+7 111 222 333" db-name = "avreg5_db-Lenina_137" storage-dir = "/home/lenina_137" user = "lenina_137" avregd { # можно привязать к определённому cpu ; cpu = 8 # порт, с которого будет раздаваться видео http-port = 877 } avreg-site { avregd-httpd = 'http://$_SERVER[SERVER_NAME]:877' }
Напомним, наша задача получить вход в веб-интерфейс AVReg для учётных записей по адресам:
http://‹имя-или-ip-адрес-сервера›/‹название-учётной-записи›
Для этого в пользовательском конфигурационном файле веб-сервера Apache «/etc/avreg/site-apache2-user.conf» нужно указать следующие директивы Alias, по 2 на каждую учётную запись AVReg.
Например, продолжая для двухпрофильной AVReg Mira_15 и Lenina_137:
% cat site-apache2-user.conf
### for "Mira_15" profile's access http://ip_or_name/Mira_15/ Alias '/Mira_15/media' '/home/mira_15' Alias '/Mira_15' '/usr/share/avreg-site' ### for 'Lenina_137' profile's access http://ip_or_name/Lenina_137/ Alias '/Lenina_137/media' '/home/lenina_137' Alias '/Lenina_137' '/usr/share/avreg-site'
И заставить демон Apache перечитать(обновить) конфигурацию:
$ sudo apache2ctl -k graceful # или $ sudo service apache2 reload
Вход в каждую учётную запись AVReg (в наших примерах Mira_15 и Lenina_137):
http://‹имя-или-ip-адрес-сервера›/‹название-учётной-записи›
По-умолчанию, доступ открыт 5-м пользователям, представителям
каждой их 5-х групп доступа: install
,
admin
, arch
, operator
и
viewer
с пустыми паролями.
В веб-интерфейсе AVReg, как минимум, нужно определить:
Управлять (запуск/останов/перезапуск) «своим» демоном avreg с веб-интерфейса могут члены групп «Инсталляторы» и «Администраторы».
Дополнительно, управлять демономами avregd всех профилей разом можно с терминала суперпользователя root или через sudo:
# service avreg start Starting AVReg surveillance system server: avregd-Mira_15[12941] started; avregd-Lenina_137[12966] started; .
В моменты загрузки и остановки системы (компьютера) демоны
avregd всех профилей запускаются и останавливаются автоматически
(сценарий системы SysV Init
«/etc/init.d/avreg
»).
Очистку медиа-архивов всех учётных записей AVReg обеспечивает
периодический запуск avreg-unlink
.
Запущенный автоматически по-расписанию или «руками» в терминале с параметрами по-умолчанию он последовательно удалит старые файлы всех учётных записей AVReg:
# avreg-unlink -v Mira_15: база данных "avreg5_db-Mira_15", корневой каталог архива: `/home/mira_15' Mira_15: Подключаемся к MySQL базе данных на "avreg5_db-Mira_15" Lenina_137: база данных "avreg5_db-Lenina_137", корневой каталог архива: `/home/lenina_137' Lenina_137: Подключаемся к MySQL базе данных на "avreg5_db-Lenina_137" Mira_15: Запуск "чистильщика" медиа-архива AVReg на "avreg5_db-Mira_15@/home/mira_15" Mira_15: устройство с медиа-архивом - `/dev/sdb1', смонтировано на `/home', fs `ext4' Mira_15: перед удалением `/dev/sdb1' размер: всего/использ./свободно: 100.0 МБ / 20.0 КБ (0%) / 100.0 МБ (100%) Mira_15: свободное место (100.0 МБ) > "start-space" options (10.0 МБ) => не будем удалять. Lenina_137: Запуск "чистильщика" медиа-архива AVReg на "avreg5_db-Lenina_137@/home/lenina_137" Lenina_137: устройство с медиа-архивом - `/dev/sdb1', смонтировано на `/home', fs `ext4' Lenina_137: перед удалением `/dev/sdb1' размер: всего/использ./свободно: 100.0 МБ / 20.0 КБ (0%) / 100.0 МБ (100%) Lenina_137: свободное место (100.0 МБ) > "start-space" options (10.0 МБ) => не будем удалять.