Нужно получить несколько независимых систем 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 МБ) => не будем удалять.