IPACTL(8)

НАИМЕНОВАНИЕ
ipactl -- утилита управления ipa(8)

СИНТАКСИС
ipactl -h|v
ipactl [-n] [-s socket] [-w timeout]
       [[-a autorule] -r rule [-l limit|-t threshold]] command [args]

ОПИСАНИЕ
Утилита ipactl используется для управления работы ipa(8) на лету. Контроль осуществляется посредством посылки сообщений на известный для ipa(8) и ipactl Unix domain сокет. Перед тем как использовать ipactl необходимо разрешить использование Unix domain сокет для принятия сообщений в ipa.conf(5) и предоставить права пользователям, которым будет разрешено использовать ipactl. Прочтите детали о разрешении доступа в странице документации ipa.conf(5).

Утилита ipactl также может использоваться как источник статистики для правила, даже если это правило не использует ни одну систему учёта.

Доступные опции:

-a autorule
    Имя автоправила.

-r rule
    Имя правила.

-l limit
    Имя лимита.

-t threshold
    Имя порога.

-n  Не ждать ответа от ipa(8), асинхронный режим.

-s socket
    Подключаться к заданному сокету, вместо того, чтобы подключатся к Unix domain сокету, заданного по умолчанию.

-w timeout
    Определить число секунд ожидания ответа от ipa(8). Нуль обозначает безграничный таймаут (по умолчанию). На самом деле этот таймаут применяется для двух или трёх системных вызовов по отдельности.

-h  Вывести информацию о доступных опциях и командах и завершить работу.

-v  Вывести номер версии, установки конфигурации и завершить работу.

Если используется опция -l или -t, то также должна использоваться опция -r.

Доступные команды (необходимые опции указаны в скобках):

create (-a, -r)
    Создать динамическое правило.

delete (-r)
    Уничтожить динамическое правило.

dump (без опций)
    Указывает сохранить текущую статистику в базах данных, после получения ответа от ipa(8), можете быть уверены, что работа ipa(8) будет заморожена на время sleep_after_dump (см. ipa.conf(5)).

expire (-r, -l)
    Перезапустить лимит, если он уже был достигнут, даже если лимит не имеет секции expire; но если он содержит секцию expire и в ней есть команды, то эти команды будут запущены.

freeze (без опций)
    Заморозить работу ipa(8), после получения ответа от ipa(8), вы можете быть уверены, что работа ipa(8) будет заморожена на время freeze_time (см. ipa.conf(5)).

memory (без опций)
    Вывести информацию об использованной памяти, о зонах памяти и о массивах памяти (используя статистику функций ipa_memfunc).

restart (-r, -l)
    Перезапустить лимит, если он не был достигнут, даже если лимит не имеет секции restart; но если он содержит секцию restart и в ней есть команды, то эти команды будут запущены.

set limit [+|-]value [counter [+|-]value] (-r, -l)
    Изменить значение параметра limit для лимита, значение параметра load_limit для лимита должно быть равно ``yes''. Опционально в этой команде также можно изменить счётчик лимита.

set threshold [+|-]value [counter [+|-]value] (-r, -t)
    Изменить значение параметра threshold для порога, значение параметра load_threshold для порога должно быть равно ``yes''. Опционально в этой команде также можно изменить счётчик порога.

set counter [+|-]value (-r, -l, -t)
    Изменить значение счётчика для правила, лимита или порога.

status (без опций, -a, -r, -l, -t)
    Вывести различную статусную информацию.

Во всех командах `+' означает увеличение и `-' означает уменьшение текущего значения (значение счётчика, значение параметра limit или threshold).

Для команд expire, restart и set новое состояние лимита регистрируется в базе данных немедленно. Если лимит неактивен, то лимит (и его правило) устанавливаются в активное состояние и затем после обновления состояния лимита лимит (и его правило) опять устанавливается в неактивное состояние.

Команда set для правила позволяет только увеличить или уменьшить счётчик правила. Прочтите параграф о статистике и об отрицательной статистике в странице документации ipa.conf(5), чтобы понять что происходит, когда вы уменьшаете статистику. Если какие-то из лимитов или порогов правила неактивны, то их статистика не обновляется. Обновляется только статистика правила и активных лимитов и порогов этого правила. Если правило неактивно, то оно устанавливается в активное состояние и затем после обновления статистики правила, правило опять устанавливается в неактивное состояние.

Команда set для правила может изменить статистику для лимитов и порогов правила. Эта обновлённая статистика не будет проверяться немедленно, проверка для лимитов и порогов будет запланирована и будет выполнена как можно быстрее.

Если лимит является достигнутым и после команды set он стал недостигнутым, и у него есть секция expire, то никакие команды из этой секции не запускаются.

Если лимит (подлимит) является недостигнутым и после команды set он стал достигнутым, и у него есть секция reach, то запускаются все команды из этой секции.

Команда set для лимита имеет один побочный эффект: если лимит не имеет параметра load_limit с значением ``yes'', и он достигнут, и значение параметра limit в базе данных не равно значению параметра limit в конфигурационном файле, то если вы измените счётчик лимита, то счётчик и значение параметра limit (реальное значение) будут обновлены вместе в базе данных.

Для команда set новое состояние порога регистрируется в базе данных немедленно, даже если порог неактивен или его правило неактивно, как и в случае с лимитами. Новые установки порога будут проверены в следующее временное событие threshold_time_slice.

ipactl принимает value как 64-битное целое, время или байты. Форматы для времени и байтов схожи с аналогичными форматами в ipa.conf(5).

ПРИМЕРЫ
Вывести информацию об использованной памяти:

ipactl memory

Вывести статусную информацию о лимите:

ipactl -r rule -l limit status

Создать динамическое правило:

ipactl -a autorule -r rule create

Добавить 10 Мбайт к параметру limit:

ipactl -r rule -l limit set limit +10M

ДИАГНОСТИКА
ipactl завершает свою работу с кодом возврата 0, если всё в порядке; 1, если не возможно разобрать командную строку, не возможно отправить команду или получить ответ от ipa(8); 2, если был получен ответ от ipa(8) и этот ответ сообщает, что управляющая команда в ipa(8) не была выполнена. Если ipactl запущена с ключём -n, то невозможно определить по коду возврату была ли принята команда утилитой ipa(8) или нет.

ФАЙЛЫ
ipactl.sock

(запустите ipactl с ключём -h, чтобы увидеть путь, заданный по умолчанию)

ДРУГИЕ ИСТОЧНИКИ
ipa(8), ipastat(8), ipa.conf(5), ipastat.conf(5), ipa_mod(3)

АВТОР
Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>

НЕДОРАБОТКИ
Если вы обнаружите какие-либо ошибки, то, пожалуйста, сообщите мне по email.