Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
unix:doc:bin:bq-runat [2016/11/03 22:42]
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...)
Строка 64: Строка 68:
  
 ===== Использование ===== ===== Использование =====
 +
 +==== Управление запуском ====
  
 Для включения функционала необходимо установить переменную окружения ''​BQRunAtEnabled=yes''​. Любое другое значение ''​BQRunAtEnabled'',​ в т.ч. пустое или неопределенное,​ отключает функционал полностью. Для включения функционала необходимо установить переменную окружения ''​BQRunAtEnabled=yes''​. Любое другое значение ''​BQRunAtEnabled'',​ в т.ч. пустое или неопределенное,​ отключает функционал полностью.
 +
 Команды,​ которые необходимо привязать к событию старта брокера БД, задаются переменными вида ''​BQRunAtStart''//​NN//,​ где //NN// – числовое значение,​ определяющее порядок выполнения ​ заданной команды. Аналогично,​ переменные ''​BQRunAtStop''//​NN//​ задают команды,​ привязанные к событию останова брокера БД. Команды,​ которые необходимо привязать к событию старта брокера БД, задаются переменными вида ''​BQRunAtStart''//​NN//,​ где //NN// – числовое значение,​ определяющее порядок выполнения ​ заданной команды. Аналогично,​ переменные ''​BQRunAtStop''//​NN//​ задают команды,​ привязанные к событию останова брокера БД.
 Если //NN// начинается на ''​0''​ (цифру ноль), то соответствующая команда выполняется при остановленном брокере БД. Если //NN// начинается на ''​0''​ (цифру ноль), то соответствующая команда выполняется при остановленном брокере БД.
Строка 135: Строка 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
 +
 +