Управление кластером 1С без лишних кликов: запуск оснастки и утилиты rac из командной строки

· 9 мин

Содержание

Консоль серверов 1С открывается двумя способами. Графическая оснастка запускается из меню «Пуск» → папка «1С:Предприятие 8» → «Администрирование серверов 1С Предприятия» или файлом 1CV8 Servers.msc. Консольная утилита rac.exe лежит в папке bin установленной платформы и работает только при запущенном сервере администрирования ras (порт по умолчанию 1545).

Первый вариант удобен, когда нужно разово посмотреть сеансы или поправить свойства базы. Второй выбирают администраторы, которым надо управлять кластером по SSH, из планировщика или с Linux-сервера, где оснастки MMC нет. Разберём оба пути: где взять утилиту, как собрать команду, как пройти аутентификацию и что делать, если консоль не открывается.

Где найти утилиту RAC и что нужно для её запуска

Утилита rac ставится вместе с платформой. Отдельного дистрибутива у неё нет. Если при установке выбраны компоненты сервера или средства администрирования, файл окажется в каталоге версии:

СистемаТипичный путь
Windows x64C:\Program Files\1cv8\8.3.xx.xxxx\bin\rac.exe
Linux (новые установщики)/opt/1cv8/x86_64/8.3.xx.xxxx/rac
Linux (старые пакеты deb/rpm)/opt/1C/v8.3/x86_64/rac

Рядом лежит ras — сервер администрирования. Это прослойка между rac и агентом сервера 1С. Сама rac к агенту напрямую не подключается: она говорит с ras, а ras уже ходит к агенту на порт 1540.

Цепочка выглядит так:

  • 🖥️ rac → порт 1545 → ras;
  • 🔁 ras → порт 1540 → агент сервера (ragent);
  • 🗂️ агент → менеджер кластера (1541) → рабочие процессы.

Держите версию rac такой же, как у сервера. Утилита от другой сборки иногда подключается, но может не знать новых параметров или неверно показывать часть свойств.

Запуск сервера администрирования RAS

Для пробы ras можно запустить вручную в отдельном окне:

cd "C:\Program Files\1cv8\8.3.24.1342\bin"
ras cluster --port=1545 localhost:1540

Окно закрывать нельзя — вместе с ним остановится и сервер администрирования. Для постоянной работы зарегистрируйте ras как службу Windows:

sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.24.1342\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto DisplayName= "1C:Enterprise 8.3 Remote Server"
sc start "1C:Enterprise 8.3 Remote Server"

Пробел после binPath=, start= и DisplayName= обязателен — без него sc выдаст ошибку синтаксиса. Номер версии подставьте свой.

На Linux сервер администрирования запускают в фоне ключом --daemon:

/opt/1cv8/x86_64/8.3.24.1342/ras cluster --daemon

Для автозапуска оформите его как unit systemd или используйте файл службы, если он есть в комплекте вашей версии платформы.

Как устроена команда rac

Общая схема команды:

rac <режим> <команда> [параметры] [адрес_ras:порт]
  • режим — объект, с которым работаем: cluster, infobase, session, process, connection, server, agent, lock;
  • команда — действие: list, info, update, create, drop, terminate и т. д.;
  • параметры — идентификаторы и учётные данные в форме --имя=значение;
  • адрес — где слушает ras. Если не указан, используется localhost:1545.

Почти все команды требуют идентификатор кластера. Поэтому работа начинается с одной и той же строки:

rac cluster list

В ответе будет блок «ключ : значение». Нужна строка cluster, в ней UUID вида a1b2c3d4-…. Его подставляют в параметр --cluster= во всех следующих командах.

Подключение к удалённому серверу — адрес в конце строки:

rac cluster list srv-1c01:1545

Справку по любому режиму выводит сама утилита:

rac help
rac help infobase
rac help session

Справка rac help <режим> — самый надёжный источник параметров. Набор ключей меняется от версии к версии, и в справке всегда то, что умеет именно ваша сборка.

Аутентификация: администратор агента и администратор кластера

У сервера 1С два уровня администраторов. Их часто путают, отсюда половина отказов в доступе.

УровеньЧто разрешаетПараметры rac
Администратор центрального сервера (агента)Создание и удаление кластеров, список администраторов агента--agent-user, --agent-pwd
Администратор кластераБазы, сеансы, процессы, рабочие серверы внутри кластера--cluster-user, --cluster-pwd
Пользователь информационной базыЧтение и изменение свойств конкретной базы--infobase-user, --infobase-pwd

Если администраторы кластера не заведены, любой, кто дотянется до порта 1545, сможет управлять кластером. На рабочем сервере так оставлять нельзя.

Посмотреть администраторов кластера:

rac cluster admin list --cluster=<UUID> --cluster-user=admin --cluster-pwd=Пароль

Пароль администратора кластера в открытом виде попадает в историю команд и в журналы планировщика. В скриптах берите его из защищённого хранилища или переменной окружения, а доступ к ras закройте брандмауэром — порт 1545 должен быть открыт только для машин администраторов.

Если пароль администратора кластера потерян, не пересоздавайте кластер. Остановите службу агента, восстановите файлы настроек кластера из резервной копии каталога srvinfo или обратитесь к тому, кто настраивал сервер.

Управление информационными базами через консоль

Список баз кластера:

rac infobase summary list --cluster=<UUID> --cluster-user=admin --cluster-pwd=Пароль

Команда показывает имя и UUID каждой базы. Полные свойства — параметры СУБД, блокировки — выдаёт infobase info, и для неё уже нужен пользователь самой базы:

rac infobase info --cluster=<UUID> --infobase=<UUID_базы> --infobase-user=Администратор --infobase-pwd=Пароль

Блокировка входа перед обновлением

Самая частая задача — закрыть вход в базу на время обновления. Команда:

rac infobase update --cluster=<UUID> --infobase=<UUID_базы> ^
  --infobase-user=Администратор --infobase-pwd=Пароль ^
  --sessions-deny=on --scheduled-jobs-deny=on ^
  --denied-message="Обновление базы, вход закрыт до 22:00" ^
  --permission-code=upd2024
  • 🔒 --sessions-deny=on — запрещает новые сеансы;
  • ⏸️ --scheduled-jobs-deny=on — останавливает регламентные задания;
  • 💬 --denied-message — текст, который увидит пользователь при попытке входа;
  • 🔑 --permission-code — код, с которым администратор всё же войдёт в базу.

После работ снимите блокировку той же командой с --sessions-deny=off и --scheduled-jobs-deny=off. Забытая блокировка регламентных заданий — частая причина того, что обмены и загрузка курсов «сами» перестают работать.

В графической оснастке то же самое делается в свойствах базы: флажки «Блокировка начала сеансов включена» и «Блокировка регламентных заданий включена», поля сообщения и кода разрешения.

Сеансы и рабочие процессы: смотреть и завершать

Список сеансов кластера:

rac session list --cluster=<UUID> --cluster-user=admin --cluster-pwd=Пароль

Добавьте --infobase=<UUID_базы>, чтобы оставить сеансы только одной базы. Ключ --licenses покажет, какие лицензии заняты сеансами — удобно, когда пользователи жалуются на нехватку лицензий:

rac session list --cluster=<UUID> --licenses

Завершить конкретный сеанс:

rac session terminate --cluster=<UUID> --session=<UUID_сеанса>

Рабочие процессы и соединения:

rac process list --cluster=<UUID>
rac connection list --cluster=<UUID>

В выводе process list смотрите память процесса и число соединений. Процесс, который раздулся по памяти, видно сразу.

Завершение сеанса обрывает работу пользователя: несохранённый документ пропадёт. Завершение рабочего процесса обрывает все сеансы, которые он обслуживает, а перезапуск службы агента — вообще всех пользователей сервера. Делайте это после предупреждения коллег или в нерабочее время.

То же в графической оснастке

Если вы открыли оснастку MMC, путь такой: Центральные серверы 1С:Предприятия 8.3 → <сервер> → Кластеры → <кластер> → Информационные базы → <база> → Сеансы. Завершить сеанс — правой кнопкой по строке, команда «Удалить». Рабочие процессы — в ветке кластера «Рабочие процессы».

Если сервера нет в дереве, добавьте его: правой кнопкой по «Центральные серверы 1С:Предприятия 8.3» → «Создать» → «Центральный сервер 1С:Предприятия 8.3», укажите имя компьютера и порт 1540.

Скрипты: как автоматизировать работу с кластером

rac хорош тем, что его вывод легко разобрать. Каждый объект — блок строк «ключ : значение», блоки разделены пустой строкой.

Пример на PowerShell: найти UUID кластера и вывести число сеансов по каждой базе.

$rac = "C:\Program Files\1cv8\8.3.24.1342\bin\rac.exe"
$auth = @("--cluster-user=admin", "--cluster-pwd=$env:RAC_PWD")

$cluster = (& $rac cluster list | Select-String '^cluster\s*:' | Select-Object -First 1).ToString().Split(':')[1].Trim()

$bases = @{}
& $rac infobase summary list --cluster=$cluster @auth | ForEach-Object {
    if ($_ -match '^infobase\s*:\s*(\S+)') { $id = $Matches[1] }
    if ($_ -match '^name\s*:\s*(.+)$')    { $bases[$id] = $Matches[1].Trim() }
}

$sessions = & $rac session list --cluster=$cluster @auth |
    Select-String '^infobase\s*:\s*(\S+)' |
    ForEach-Object { $_.Matches[0].Groups[1].Value } |
    Group-Object

foreach ($g in $sessions) {
    "{0}: {1}" -f $bases[$g.Name], $g.Count
}

Пароль здесь берётся из переменной окружения RAC_PWD, а не пишется в файл.

Что обычно автоматизируют:

  • 🌙 ночную блокировку базы перед обновлением и снятие её утром;
  • 🧹 завершение «зависших» сеансов перед выгрузкой .dt;
  • 📊 сбор числа сеансов и занятых лицензий в файл или систему мониторинга;
  • 🚨 оповещение, если рабочий процесс превысил порог памяти.

На Linux тот же разбор делают через awk или grep, а запуск — через cron или таймеры systemd.

Перед запуском скрипта по расписанию
Выполнено: 0 / 6

Почему консоль не открывается: ошибки и решения

Диагностика: выберите симптом

Перерегистрация radmin.dll

Это главный приём, когда графическая консоль не запускается после установки новой платформы. Оснастка использует COM-библиотеку radmin.dll, и зарегистрированной должна быть библиотека той же версии, что и сервер.

Откройте командную строку от имени администратора и выполните:

regsvr32 "C:\Program Files\1cv8\8.3.24.1342\bin\radmin.dll"

После сообщения об успешной регистрации запустите оснастку заново. Если на компьютере стоят платформы x86 и x64, регистрируйте библиотеку той разрядности, что совпадает с MMC: 64-битная консоль на 64-битной Windows работает только с 64-битной radmin.dll из C:\Program Files\1cv8\.

Если файла 1CV8 Servers.msc нет, оснастку можно добавить вручную: Win+R → mmc → меню «Файл» → «Добавить или удалить оснастку» → «Администрирование серверов 1С:Предприятия». Пункт появится в списке только после регистрации radmin.dll.

Частые вопросы

Можно ли управлять сервером 1С на Linux из Windows?
Да. Запустите ras на Linux-сервере, откройте порт 1545 для своей машины и выполняйте rac на Windows, указав адрес сервера в конце команды. Графическая оснастка MMC тоже подключается к агенту на Linux по порту 1540.
Нужна ли лицензия для работы rac и консоли администрирования?
Нет. Утилиты администрирования не занимают клиентские лицензии. Лицензия нужна самому серверу 1С и пользователям, которые работают в базах.
Чем rac отличается от графической консоли?
Возможности почти одинаковые, отличается способ работы. Консоль удобна для разовых действий, rac — для скриптов, удалённой работы по SSH и серверов без графической оболочки.
Можно ли запустить несколько ras на одном сервере?
Да, если у каждого свой порт. Так делают, когда на машине работают кластеры разных версий платформы: каждой версии — свой ras со своим портом.
Как узнать версию сервера, к которому подключается rac?
Посмотрите путь к исполняемому файлу службы агента 1С в оснастке «Службы» Windows: номер версии входит в путь к каталогу bin. На Linux версия видна в пути к файлу ragent в выводе ps aux | grep ragent.