IPACTL(8) 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. 27 января 2007 г. IPACTL(8)