Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
unix:doc:bin:bq-runat [2016/11/03 22:19] 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) | ||
| Строка 18: | Строка 18: | ||
| Предусмотрены следующие переменные: | Предусмотрены следующие переменные: | ||
| - | ==== Включение функционала BQRunAt ==== | + | === Включение функционала BQRunAt === |
| <code bash> | <code bash> | ||
| - | BQRunAtEnabled=yes # включение функционала BQRunAt | + | BQRunAtEnabled=yes # включение функционала BQRunAt |
| </code> | </code> | ||
| - | ==== Управление запуском ==== | + | === Управление запуском === |
| <code bash> | <code bash> | ||
| Строка 37: | Строка 37: | ||
| </code> | </code> | ||
| - | ==== Управление полномочиями ==== | + | === Управление полномочиями === |
| <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> | ||
| - | ==== Управление сообщениями ==== | + | === Управление сообщениями === |
| <code bash> | <code bash> | ||
| - | BQRunAt{Start|Stop}<NN>Verbosе={0|1|2|3} # уровень сообщений | + | BQRunAtStart<NN>Verbosе={0|1|2|3} # уровень сообщений при старте |
| - | 0 – сообщение отсутствует | + | BQRunAtStop<NN>Verbosе={0|1|2|3} # уровень сообщений при останове |
| - | 1 – выводится UUser и имя соответствующей переменной (BQRunAt...) | + | 0 – сообщение отсутствует |
| - | 2 - UUser, имя переменной и первое слово заданной команды | + | 1 – выводится UUser и имя соответствующей переменной (BQRunAt...) |
| - | 3 – UUser, имя переменной и вся команда целиком (с аргументами) | + | 2 - UUser, имя переменной и первое слово заданной команды |
| - | по умолчанию: 2 | + | 3 – UUser, имя переменной и вся команда целиком (с аргументами) |
| + | по умолчанию: 2 | ||
| </code> | </code> | ||
| ===== Использование ===== | ===== Использование ===== | ||
| + | |||
| + | ==== Управление запуском ==== | ||
| Для включения функционала необходимо установить переменную окружения ''BQRunAtEnabled=yes''. Любое другое значение ''BQRunAtEnabled'', в т.ч. пустое или неопределенное, отключает функционал полностью. | Для включения функционала необходимо установить переменную окружения ''BQRunAtEnabled=yes''. Любое другое значение ''BQRunAtEnabled'', в т.ч. пустое или неопределенное, отключает функционал полностью. | ||
| + | |||
| Команды, которые необходимо привязать к событию старта брокера БД, задаются переменными вида ''BQRunAtStart''//NN//, где //NN// – числовое значение, определяющее порядок выполнения заданной команды. Аналогично, переменные ''BQRunAtStop''//NN// задают команды, привязанные к событию останова брокера БД. | Команды, которые необходимо привязать к событию старта брокера БД, задаются переменными вида ''BQRunAtStart''//NN//, где //NN// – числовое значение, определяющее порядок выполнения заданной команды. Аналогично, переменные ''BQRunAtStop''//NN// задают команды, привязанные к событию останова брокера БД. | ||
| Если //NN// начинается на ''0'' (цифру ноль), то соответствующая команда выполняется при остановленном брокере БД. | Если //NN// начинается на ''0'' (цифру ноль), то соответствующая команда выполняется при остановленном брокере БД. | ||
| - | Если же //NN// состоит из одной цифры от ''1'' до ''5'', то данная команда будет выполняться при запущенном брокере БД. Значение //NN// определяет приоритет команды: чем оно по модулю меньше, тем ближе к событию старта/останова будет выполняться команда. То есть, команды со значениями ''01'' и '1' будут ближе по времени к этим событиям, чем команды ''05'' и ''5''. | + | Если же //NN// состоит из одной цифры от ''1'' до ''5'', то данная команда будет выполняться при запущенном брокере БД. Значение //NN// определяет приоритет команды: чем оно по модулю меньше, тем ближе к событию старта/останова будет выполняться команда. То есть, команды со значениями ''01'' и ''1'' будут ближе по времени к этим событиям, чем команды ''05'' и ''5''. |
| Таким образом, последовательность выполнения команд будет следующая: | Таким образом, последовательность выполнения команд будет следующая: | ||
| Строка 133: | Строка 140: | ||
| Во втором и третьем случае все переменные указанной команды подставляются только в момент запуска ''BQRunAtStart3''. | Во втором и третьем случае все переменные указанной команды подставляются только в момент запуска ''BQRunAtStart3''. | ||
| - | ==== Использование: управление полномочиями ==== | + | ==== Управление полномочиями ==== |
| + | |||
| + | Функционалом предусмотрена возможность выполнения команд 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 | ||
| - | Все команды выполняются с полномочиями, определяемыми переменной BQRunAtUUser, в которой указывается имя unix-пользователя. | + | v.4.6.0 15.12.2010 cksum: 1976088185 \\ |
| + | [+] Добавлен функционал: BQRunAtStart, BQRunAtStop | ||
| - | ==== Использование: управление сообщениями ==== | ||