Интерфейс командной строки (CLI)
Интерфейс управления системой ECSS-10 на базе командной строки (Command Line Interface — CLI) реализован подсистемой Cocon (Command console).
Cocon — представляет собой распределенную консоль управления, которая позволяет управлять подсистемами ECSS-10 из одного места (используя одно подключение).
Правила работы с командной строкой
По умолчанию командная консоль CoCon доступна по протоколу SSH версии 2 (порт 8023).
Команда для подключения к консоли:
ssh USER@HOST -p 8023
Если по умолчанию используется протокол SSH версии 1, то можно воспользоваться следующей командой:
ssh USER@HOST -2 -p 8023
Команды управления системой ECSS-10 группируются в древовидную структуру, напоминающую файловую систему. Файлы — это команды, а каталоги — это логическая группировка команд (привязка их к определенной подсистеме).
Область видимости команд работает таким образом, что команды, которые объявлены в корневом каталоге, доступны в любом месте файловой системы (глобальные команды), все остальные команды работают в том каталоге, где они объявлены.
Выполнить команду можно двумя способами:
Зайти в нужный каталог, используя команду cd, и выполнить команду в этом каталоге — это позволяет использовать менее объемные команды.
Для обозначения текущего каталога, в котором находится пользователь, динамически изменяется строка приглашения системы.Для запуска команды из текущего каталога необходимо перед именем команды набрать ./ (точка-слеш).Пример:
1. зайти в каталог /domain/eltex.local
/ss: ssw@[mycelium@ecss3]:/#> cd domain/eltex.local /ss/ ssw@[mycelium@ecss3]:/domain/eltex.local/ss#>
2. выполнить команду "info" в заданном каталоге:
ssw@[mycelium@ecss3]:/domain/eltex.local/ss#> ./info
Написать путь до команды (абсолютный или относительный путь):
ssw@[mycelium@ecss3]:/#> domain/eltex.local/ss/info
Глобальные команды выполняются без указания пути.
Права доступа, определенные для пользователя, ограничивают возможности пользователя по выполнению команд. Команды, которые недоступны для выполнения определенному пользователю, не будут отображаться в соответствующих местах файловой системы, и у пользователя не будет возможности их выполнить.
Для упрощения использования командной строки интерфейс поддерживает функцию автоматического дополнения команд. Эта функция активизируется при неполно набранной команде и вводе табуляции <Tab>. Другая функция <Tab> — просмотр команд, доступных для ввода в текущем каталоге.
Получить справочную информацию о команде и ее параметрах на любом этапе ввода команды можно двумя способами:
1. ввод команды man перед основной командой:> man shell-trace
2. ввод комбинации -h после команды:
> shell-trace -h
В финале вывода команды имеется информация о дате/времени, скорости выполнения команды, а также ноде и ее версии, на которой именно выполнена команда. Пример:
admin@mycelium1@ecss1:/$ restfs/list ┌────────────┬──────────────────────────────┬─────────┐ │Cluster name│ Peer │ Status │ ├────────────┼──────────────────────────────┼─────────┤ │default │http://system.restfs.ecss:9990│connected│ └────────────┴──────────────────────────────┴─────────┘ Succesfull [exec at: 12.01.2021 15:49:19, exec time: 35ms, nodes: core1@ecss1 v.3.14.7.427]
Авторизация по ключу
Для авторизации необходимо добавить свой public key (находится по пути ~/.ssh/*.pub) через интерфейс кокона:
admin@[mycelium1@ecss1]:/$ /shell-options public-key add ssh-rsa ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCw7sJZltBfbooyv2T3Bsz/l01SM53XfNkJzN9DxPKq8kH4FRKf8NJWRHpLAWmBElUmp5APxWLfR74ncTYGrRIUj+u8ygZav1YYbgOrTgNwyFaJUurg2LVymLd9+Q/wA7ORxomuhLMGaiSfaOUyoO1xE5opZU65IpZhuyVrNOGZLQ== test@gmail.com
Проверить список можно командой:
admin@[mycelium1@ecss1]:/$ ./shell-options public-key list
Удалить можно командой:
admin@[mycelium1@ecss1]:/$ /shell-options public-key delete ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCw7sJZltBfbooyv2T3Bsz/l01SM53XfNkJzN9DxPKq8kH4FRKf8NJWRHpLAWmBElUmp5APxWLfR74ncTYGrRIUj+u8ygZav1YYbgOrTgNwyFaJUurg2LVymLd9+Q/wA7ORxomuhLMGaiSfaOUyoO1xE5opZU65IpZhuyVrNOGZLQ== test@gmail.com
Права доступа на команды
Ниже приведен список групп доступа к командам CoCon-а, и в каких группах должен состоять пользователь, чтобы выполнить необходимую команду:
-any-
— любой пользователь может выполнить команду с данными правами;-root-
— только пользователь ecss-root может выполнить данную команду;ecss-user
— пользователь с правами ecss-user, ecss-admin может выполнить данную команду;ecss-admin
— пользователь с правами ecss-admin может выполнить данную команду;ecss-<DOMAIN>-user
— пользователь с правами ecss-<DOMAIN>-user, _ecss-<DOMAIN>-admin, ecss-user, ecss-admin может выполнить данную команду;ecss-<DOMAIN>-admin
— пользователь с правами ecss-<DOMAIN>-admin, ecss-admin может выполнить данную команду.
Принципы формирования виртуальной файловой системы в CLI
Командная строка CoCon выглядит следующим образом:
ssw@[mycelium@ecss3]:/cluster/core/core1$ ▋ └┬┘ └───┬───┘ └─┬─┘ └─────────┬───────┘ └┬┘ │ │ │ │ └ приглашение для ввода команды │ │ │ │ │ │ │ └─────────── текущий абсолютный путь │ │ │ │ │ └────────────────────────── имя сервера, к которому подключена консоль │ │ │ └────────────────────────────────── имя ноды, к которой подключена консоль │ └───────────────────────────────────────── имя пользователя, в рамках которого осуществляется текущее подключение
Список или дерево доступных команд можно просмотреть по команде ls из любого каталога виртуальной файловой системы, см. описание:
admin@ds1@ecss1:/$ man ls List directory content Usage: ls [-Flags] [Path] Flags: d - list directory entries f - list file entries a - show hidden entries t - tree, show files in all subdirectories of Path l - use a long listing format Format: --------------------------------------------------- | name* | desctination* | is_executable* | group* | --------------------------------------------------- | | | | | *name - command name *group - user group that can execute command, *destination - where the command is executed, could be node name or node group name *is_executable - in case of command, asterisk means that current user could execute this command (command can be executed) in case if folder - folder contains "asterisked" commands Default: ls -fd .
Пример вывода дерева команд по пути /node/core1@ecss1/ . В последнем поле указаны группы пользователей, которым доступно выполнение данной команды:
admin@mycelium1@ecss1:/$ ls -lat node/core1@ecss1/ |-*.exec core1@ecss1 -any- |-*.garbage-collector core1@ecss1 ecss-admin |-*cocon-info core1@ecss1 -any- |-*date core1@ecss1 -any- |- eshell core1@ecss1 -root- |-*etop core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal |-*etop-snapshot core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal |-*host-info core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal |-*info core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal |-*process-info core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal |-*restart core1@ecss1 ecss-admin |-*service core1@ecss1 -any- |-*show-cert core1@ecss1 -any- |-*shutdown core1@ecss1 ecss-admin |-*uptime core1@ecss1 -any- |-/.profile | |-*eep core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal |-/.recon | |-*bin-leak core1@ecss1 ecss-admin | |-*inet-count core1@ecss1 ecss-admin | |-*node-stats core1@ecss1 ecss-admin | |-*port-info core1@ecss1 ecss-admin | |-*proc-count core1@ecss1 ecss-admin | |-*proc-info core1@ecss1 ecss-admin | |-*proc-state core1@ecss1 ecss-admin | |-*remote_load core1@ecss1 ecss-admin | |-*scheduler-usage core1@ecss1 ecss-admin | |-/allocator | |-*allocators core1@ecss1 ecss-admin | |-*average-block-sizes core1@ecss1 ecss-admin | |-*cache-hit-rates core1@ecss1 ecss-admin | |-*fragmentation core1@ecss1 ecss-admin | |-*memory core1@ecss1 ecss-admin | |-*snapshot core1@ecss1 ecss-admin |-/.tracer | |-*declare core1@ecss1 ecss-admin |-/ets | |-*info core1@ecss1 ecss-admin |-/host | |-*.mtr core1@ecss1 ecss-admin | |-*.ping core1@ecss1 ecss-admin | |-*.shell core1@ecss1 ecss-admin | |-*.sngrep core1@ecss1 ecss-admin | |- module_reload core1@ecss1 -root- |-/log | |-*.dumps core1@ecss1 ecss-admin | |-*clear core1@ecss1 ecss-admin | |-*dump core1@ecss1 ecss-admin | |-*last-errors core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal | |-/.flow | | |-*add core1@ecss1 ecss-admin | | |-*remove core1@ecss1 ecss-admin | | |-*show core1@ecss1 ecss-admin | |-/rule | |-*add core1@ecss1 ecss-admin | |-*off core1@ecss1 ecss-admin | |-*on core1@ecss1 ecss-admin | |-*rotate core1@ecss1 ecss-admin | |-*show core1@ecss1 ecss-admin |-/mycelium_client | |-*list core1@ecss1 ecss-admin |-/rps |-*alarms core1@ecss1 ecss-admin |-*controls core1@ecss1 ecss-admin |-*events core1@ecss1 ecss-admin |-*logs core1@ecss1 ecss-admin |-*stats core1@ecss1 ecss-admin |-*status core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal |-/thresholds |-*add-disk-point core1@ecss1 ecss-admin |-*delete-disk-point core1@ecss1 ecss-admin |-*list core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal |-*sync core1@ecss1 ecss-user,ecss-admin,ecss-subscriber-portal
Команды, начинающиеся с точки являются скрытыми. Предназначены для разработчиков и инженеров технической поддержки.
Команда man перед любой командой или ключ -h после нее выводит документацию по назначению и использованию команды.
Структура дерева команд:
/ (root) - корневой каталог, содержит глобальные команды (alias, cd, exec, exit, locate, ls, man, pwd, shell, shell-options, sudo, whereami, whereis, who, whoami). │ ├─ aaa - команда копирования AAA-параметров │ ├─ api - команды настройки API CSTA │ ├─ audit - каталог группирует в себе команды для просмотра истории вводимых команд и активных сессий │ ├─ bridge - каталог группирует в себе команды управления bridge-интерфейсами │ ├─ cluster - каталог группирует в себе команды управления логической топологией ECSS - кластерами (доступен только администратору системы) │ ├─ cocon - каталог группирует в себе команды управления пользователями cocon- и web-конфигуратора ECSS-10 │ ├─ domain - каталог группирует в себе команды управления доменами - виртуальными АТС │ ├─ mlpp - каталог группирует в себе команды управления многоадресной приоритезацией вызовов (MLPP) │ ├─ gateway - каталог группирует в себе команды управления шлюзами │ ├─ node - каталог группирует в себе команды управления активными нодами ECSS (доступен только администратору системы) │ ├─ sorm - каталог группирует в себе команды управления системой СОРМ │ ├─ statistics - каталог группирует в себе команды настройки параметров базы данных MySQL для записи статистики ECSS-10 │ └─ system - каталог группирует в себе команды управления глобальными настройками системы