Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
unix:doc:bin:bq-runat [2016/11/03 22:44] kos [Использование] |
unix:doc:bin:bq-runat [2016/11/17 20:34] (текущий) kos [BQRunAt - функционал bq.sh для запуска внешних команд при старте/останове брокера БД] |
||
---|---|---|---|
Строка 2: | Строка 2: | ||
Версия: bq.sh ver. 4.6.2 \\ | Версия: bq.sh ver. 4.6.2 \\ | ||
- | TT#: 0139423 | + | TT#: 0139423, 0291009 |
===== Назначение ===== | ===== Назначение ===== | ||
Строка 8: | Строка 8: | ||
Обеспечение возможности запуска настраиваемых shell-команд в привязке к событиям старта и останова брокера БД. | Обеспечение возможности запуска настраиваемых shell-команд в привязке к событиям старта и останова брокера БД. | ||
Предусмотрено до пяти команд в каждом из перечисленных временных отрезков: | Предусмотрено до пяти команд в каждом из перечисленных временных отрезков: | ||
- | * непосредственно перед моментом запуска брокера (proserve) | + | * непосредственно перед моментом запуска брокера БД (proserve) |
* после успешного запуска брокера БД | * после успешного запуска брокера БД | ||
* непосредственно перед командой останова брокера базы (proshut) | * непосредственно перед командой останова брокера базы (proshut) | ||
Строка 21: | Строка 21: | ||
<code bash> | <code bash> | ||
- | BQRunAtEnabled=yes # включение функционала BQRunAt | + | BQRunAtEnabled=yes # включение функционала BQRunAt |
</code> | </code> | ||
Строка 41: | Строка 41: | ||
<code bash> | <code bash> | ||
- | BQRunAtUUser={<unix-user>|.} # unix-user для выполнения всех команд BQRunAt | + | BQRunAtUUser={<unix-user>|.} # unix-user для выполнения всех команд BQRunAt |
bis - значение по умолчанию | bis - значение по умолчанию | ||
. - текущий пользователь (под которым выполняется bq.sh в данный момент) | . - текущий пользователь (под которым выполняется bq.sh в данный момент) | ||
- | BQRunAt{Start|Stop}<NN>UUser={<unix-user>|.} | + | BQRunAtStart<NN>UUser={<unix-user>|.} |
- | # unix-user для выполнения конкретной команды BQRunAt{Start|Stop}<NN> | + | # unix-user для выполнения конкретной команды BQRunAtStart<NN> |
+ | |||
+ | BQRunAtStop<NN>UUser={<unix-user>|.} | ||
+ | # unix-user для выполнения конкретной команды BQRunAtStop<NN> | ||
</code> | </code> | ||
Строка 54: | Строка 57: | ||
<code bash> | <code bash> | ||
- | BQRunAt{Start|Stop}<NN>Verbosе={0|1|2|3} # уровень сообщений | + | BQRunAtStart<NN>Verbosе={0|1|2|3} # уровень сообщений при старте |
+ | BQRunAtStop<NN>Verbosе={0|1|2|3} # уровень сообщений при останове | ||
0 – сообщение отсутствует | 0 – сообщение отсутствует | ||
1 – выводится UUser и имя соответствующей переменной (BQRunAt...) | 1 – выводится UUser и имя соответствующей переменной (BQRunAt...) | ||
Строка 68: | Строка 72: | ||
Для включения функционала необходимо установить переменную окружения ''BQRunAtEnabled=yes''. Любое другое значение ''BQRunAtEnabled'', в т.ч. пустое или неопределенное, отключает функционал полностью. | Для включения функционала необходимо установить переменную окружения ''BQRunAtEnabled=yes''. Любое другое значение ''BQRunAtEnabled'', в т.ч. пустое или неопределенное, отключает функционал полностью. | ||
+ | |||
Команды, которые необходимо привязать к событию старта брокера БД, задаются переменными вида ''BQRunAtStart''//NN//, где //NN// – числовое значение, определяющее порядок выполнения заданной команды. Аналогично, переменные ''BQRunAtStop''//NN// задают команды, привязанные к событию останова брокера БД. | Команды, которые необходимо привязать к событию старта брокера БД, задаются переменными вида ''BQRunAtStart''//NN//, где //NN// – числовое значение, определяющее порядок выполнения заданной команды. Аналогично, переменные ''BQRunAtStop''//NN// задают команды, привязанные к событию останова брокера БД. | ||
Если //NN// начинается на ''0'' (цифру ноль), то соответствующая команда выполняется при остановленном брокере БД. | Если //NN// начинается на ''0'' (цифру ноль), то соответствующая команда выполняется при остановленном брокере БД. | ||
Строка 137: | Строка 142: | ||
==== Управление полномочиями ==== | ==== Управление полномочиями ==== | ||
- | Все команды выполняются с полномочиями, определяемыми переменной BQRunAtUUser, в которой указывается имя unix-пользователя. | + | Функционалом предусмотрена возможность выполнения команд BQRunAt |
+ | под полномочиями заданного пользователя unix с помощью системной | ||
+ | команды ''su'' или аналога (определяется в bq.sh). По умолчанию все команды | ||
+ | BQRunAt будут запускаться из-под unix-пользователя **bis**. | ||
+ | В случае необходимости изменить пользователя можно установкой переменной: | ||
+ | <code bash> | ||
+ | |||
+ | BQRunAtUUser={<unix-user>|.} # unix-user для выполнения всех команд BQRunAt | ||
+ | | ||
+ | </code> | ||
+ | Специальное значение ''BQRunAtUUser=.'' (точка) отключает использование ''su''. В этом случае | ||
+ | все команды BQRunAt будут запускаться с полномочиями текущего пользователя | ||
+ | (под которым выполняется bq.sh в данный момент). Будьте осторожны при использовании данного режима: | ||
+ | возможны конфликты с правами доступа и потенциальные уязвимости. | ||
+ | |||
+ | Установкой перечисленных ниже переменных можно задать unix-пользователя для каждой | ||
+ | конкретной команды ''BQRunAtStart''//NN// или ''BQRunAtStop''//NN//: | ||
+ | <code bash> | ||
+ | |||
+ | BQRunAtStart<NN>UUser={<unix-user>|.} | ||
+ | BQRunAtStop<NN>UUser={<unix-user>|.} | ||
+ | |||
+ | </code> | ||
+ | Под заданным пользователем будет выполнятся только указанная команда. Для остальных | ||
+ | по прежнему будет использоваться значение по умолчанию из переменной ''BQRunAtUUser''. | ||
+ | Здесь также специальное значение "''.''" (точка) приводит к выполнению команд | ||
+ | под текущим пользователем. | ||
==== Управление сообщениями ==== | ==== Управление сообщениями ==== | ||
+ | |||
+ | Перед запуском каждой из заданных команд BQRunAt скрипт bq.sh выводит | ||
+ | в stdout (на терминал) информационное сообщение. | ||
+ | Установкой описанных ниже переменных можно управлять степенью подробности | ||
+ | этих сообщений. Уровень подробности задается отдельно для каждой из команд BQRunAt. | ||
+ | <code bash> | ||
+ | |||
+ | BQRunAtStart<NN>Verbosе={0|1|2|3} # уровень сообщений при старте | ||
+ | BQRunAtStop<NN>Verbosе={0|1|2|3} # уровень сообщений при останове | ||
+ | |||
+ | </code> | ||
+ | Предусмотрены следующие значения: | ||
+ | |||
+ | * ''0'' – сообщение отсутствует | ||
+ | * ''1'' – выводится UUser и имя соответствующей переменной (''BQRunAt''...) | ||
+ | * ''2'' – UUser, имя переменной и первое слово заданной команды | ||
+ | * ''3'' – UUser, имя переменной и вся команда целиком (с аргументами) | ||
+ | |||
+ | По умолчанию принимается значение: ''2'' | ||
+ | |||
+ | ===== История версий ===== | ||
+ | |||
+ | v.4.6.2 //в процессе реализации// \\ | ||
+ | [+] Добавлено управление полномочиями (переменные BQRunAtUUser, BQRunAtStart//NN//UUser, BQRunAtStop//NN//UUser) | ||
+ | |||
+ | |||
+ | v.4.6.1 30.08.2011 cksum: 1480063694 \\ | ||
+ | [*] Функция BQRunAtStop: изменен порядок вызова, теперь: 5,4,3,2,1 | ||
+ | |||
+ | v.4.6.0 15.12.2010 cksum: 1976088185 \\ | ||
+ | [+] Добавлен функционал: BQRunAtStart, BQRunAtStop | ||
+ | |||
+ | |||