Управление кластером 1С без лишних кликов: запуск оснастки и утилиты rac из командной строки
Содержание
Консоль серверов 1С открывается двумя способами. Графическая оснастка запускается из меню «Пуск» → папка «1С:Предприятие 8» → «Администрирование серверов 1С Предприятия» или файлом 1CV8 Servers.msc. Консольная утилита rac.exe лежит в папке bin установленной платформы и работает только при запущенном сервере администрирования ras (порт по умолчанию 1545).
Первый вариант удобен, когда нужно разово посмотреть сеансы или поправить свойства базы. Второй выбирают администраторы, которым надо управлять кластером по SSH, из планировщика или с Linux-сервера, где оснастки MMC нет. Разберём оба пути: где взять утилиту, как собрать команду, как пройти аутентификацию и что делать, если консоль не открывается.
Где найти утилиту RAC и что нужно для её запуска
Утилита rac ставится вместе с платформой. Отдельного дистрибутива у неё нет. Если при установке выбраны компоненты сервера или средства администрирования, файл окажется в каталоге версии:
| Система | Типичный путь |
|---|---|
| Windows x64 | C:\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.
Почему консоль не открывается: ошибки и решения
Test-NetConnection srv-1c01 -Port 1545. Если ras запущен на другом порту, укажите его в конце команды rac.--cluster-user и --cluster-pwd. Для команд уровня агента нужны --agent-user и --agent-pwd.--infobase-user и --infobase-pwd пользователя с административными правами в этой базе.Перерегистрация 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?
Нужна ли лицензия для работы rac и консоли администрирования?
Чем rac отличается от графической консоли?
Можно ли запустить несколько ras на одном сервере?
Как узнать версию сервера, к которому подключается rac?
ps aux | grep ragent.