2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !
Внимание! Данные страницы описывают CBSD версии 13.0.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.
Синтаксис команд CBSD
Все команды начинаются с префикса cbsd (если вы не в CBSD CLI) и должны выполнятся от пользователя root:
% cbsd jls % cbsd jstop jname % cbsd jstart jname % cbsd node mode=list ...
Команды CBSD могут принимать аргументы, записываемые в виде «param=value».
CBSD команды могут иметь как обязательные аргументы, так и аргументы, являющие опциональными. Порядок аргументов роли не играет.
Аргументы команд и описание
Для того, чтобы получить краткую информацию о том или ином скрипте, а также получить список обязательных и опциональных аргументов, используйте аргумент --help для соответствующей команды:
% cbsd <cmd> --help
Например, получить справку по jls:
% cbsd jls --help
Результат:
[jail] List jail and status require: opt: alljails shownode display node header alljails=1 - get jaillist from remote node shownode=1 - show nodename for jails node= only for current node header=0 don't print header display= list by comma for column. Default: jid,jname,ip4_addr,host_hostname,path,status External help: http://www.bsdstore.ru/10.0.2/html/wf_jls_en.html
В первой строчке в квадратных скобках указывается имя модуля, к которому относится команда ( jail в данном случае ), а также краткая информация по функциям.
В строчке с require: перечисляются обязательные аргументы, без указания которых работа команды невозможна.
В строчке с opt: перечисляются необязательные аргументы ( тем не менее, в зависимости от режима работы утилиты, в разных случаях они могут быть обязательны )
В следующих строчках идет краткое описание аргументов, если она есть.
Также, может присутствовать ссылка на документацию ( External help ). Она может указывать как на сайт, так и на локальный файл, если устанавливалась документация.
Некоторые команды, ожидающие в качестве параметра имя клетки, могут быть интерактивные, выведя список клеток (в том числе на удаленных нодах ) на выбор. Для этого, достаточно просто запустить команду без аргумента. Примеры этих команд:
cbsd jlogin, cbsd blogin, cbsd jconfig, cbsd bconfig, cbsd jstop, cbsd bstop, cbsd jstart, cbsd bstart и тд.
Кроме этого, CBSD инсталлируется в виде модуля для базовой утилиты bsdconfig (добавляет себя в конце списка), в который сгруппированы некоторые -tui утилиты, поэтому, некоторые элементы управления CBSD вы можете выполнять через диалоговый интерфейс, запустив bsdconfig cbsd
Интерактивность, цвет в выводе результата
По-умолчанию, вывод в консоль производится в цветном режиме. Если цвет вам мешает (например, вы используете какие-то свои сценарии для работы с CBSD командами), вы можете использовать в переменной окружения параметр NOCOLOR=1
% cbsd jls % env NOCOLOR=1 cbsd jls
Некоторые команды могут быть интерактивны - в процессе работы задать корректирующий вопрос. Например, если вы запускаете jail, требующий базу FreeBSD 10.1 и этой базы у вас нет, CBSD задаст вопрос на скачивание базы
Это поведение может быть не подходящее, если вы пишите свои скрипты вокруг CBSD. В этом случае, вы можете дописывать параметр inter=0 в каждой команде. Это заставляет CBSD принять решение по-умолчанию, когда возникает вопросительная ситуация
% cbsd jstart inter=0 jname=XXX % cbsd jcreate inter=0 jconf=/path/to/jconf
Debug отработки CBSD команд
Для включения дебага через sh xtrace и трассировки операций, используйте переменную окружения CBSD_DEBUG, например:
% env CBSD_DEBUG=1 cbsd node mode=add node=192.168.1.222 pw=very_strong_plain_password port=22 % env CBSD_DEBUG=1 cbsd jls
Вывод в XML, JSON, HTML и человеческом формате
Начиная с версии 10.1.5, CBSD может выводить информацию не только в понятном человеческом формате, но и в HTML, XML и JSON для более удобного машинного парсинга и просто на радость киборгов