Чистим сервер 1С:Предприятие: что из логов можно удалять, а что нельзя
Содержание
Чтобы очистить логи 1С на сервере, удалите старые файлы технологического журнала из каталога, указанного в logcfg.xml, и сократите журнал регистрации базы через конфигуратор: Администрирование → Настройка журнала регистрации → Сократить. Частая ошибка администратора — стереть целиком папку srvinfo или каталог базы внутри reg_1541. После этого кластер теряет список баз, и восстанавливать его придётся вручную.
Логи сервера 1С — это три разных хранилища с разными правилами. Технологический журнал можно чистить почти без оглядки. Журнал регистрации — только средствами платформы. Служебные файлы кластера трогать нельзя вовсе. Инструкция ниже написана для платформы 8.3 на Windows Server 2016 и новее; для Linux пути и команды даны отдельно.
Где сервер 1С хранит логи и что из них можно удалять
Прежде чем что-то удалять, разберитесь, откуда растёт объём. На типичном сервере место съедают четыре источника.
| Что | Где лежит | Чем управляется | Можно удалять вручную |
|---|---|---|---|
| 📄 Технологический журнал (ТЖ) | каталог из атрибута location в logcfg.xml | файл logcfg.xml | да, старые файлы |
| 💥 Дампы процессов | каталог из элемента <dump> в logcfg.xml или профиль пользователя службы | файл logcfg.xml | да |
| 📚 Журнал регистрации базы | srvinfo\reg_1541\<GUID базы>\1Cv8Log\ | конфигуратор, пакетный режим | нет, только сокращать |
| 🗂 Кэш сеансовых данных | srvinfo\reg_1541\snccntx* | сам кластер | только при остановленной службе |
Каталог srvinfo задаётся при установке службы ключом -d. Проверить его просто: откройте services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3» и посмотрите строку «Исполняемый файл». Путь после -d и есть корень. По умолчанию это C:\Program Files\1cv8\srvinfo.
Число в имени reg_1541 — порт менеджера кластера. Если кластер поднят на другом порту, папка будет называться иначе, например reg_2541.
В каталоге reg_1541 лежит файл 1CV8Clst.lst — реестр кластера со списком баз, рабочих серверов и администраторов. Его не удаляйте ни при какой уборке.
Быстро найти самые тяжёлые папки поможет PowerShell:
Get-ChildItem 'C:\Program Files\1cv8\srvinfo' -Directory -Recurse |
ForEach-Object {
[pscustomobject]@{
Path = $_.FullName
GB = [math]::Round((Get-ChildItem $_.FullName -File -Recurse -ErrorAction SilentlyContinue |
Measure-Object Length -Sum).Sum / 1GB, 2)
}
} | Sort-Object GB -Descending | Select-Object -First 15
Технологический журнал: как очистить и ограничить рост
Технологический журнал включается файлом logcfg.xml. Платформа ищет его в каталоге conf — общем (C:\Program Files\1cv8\conf\) или в каталоге конкретной версии (C:\Program Files\1cv8\8.3.xx.xxxx\bin\conf\). На Linux — /opt/1cv8/conf/ или каталог conf установленной версии.
Сервер перечитывает файл примерно раз в минуту. Перезапускать службу после правки не нужно.
Шаг 1. Найдите каталог журнала
Откройте logcfg.xml блокнотом. Каталог журнала указан в атрибуте location элемента <log>. Внутри него платформа создаёт папки по процессам: rphost_4120, rmngr_2236, ragent_1984. Число после подчёркивания — идентификатор процесса (PID). В каждой папке лежат файлы вида 26100714.log — один файл на час работы.
Шаг 2. Задайте срок хранения
Атрибут history — сколько часов хранить файлы. Старше этого срока платформа удаляет их сама. Если атрибут забыли или поставили большое число, журнал растёт до заполнения диска.
Пример настройки, которая пишет только исключения и хранит их сутки:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1C_logs\tj" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
💡 Пишите журнал на отдельный диск, не на системный. Если журнал всё-таки переполнит диск, база и ОС продолжат работать.
Шаг 3. Удалите накопившиеся файлы
- Если журнал больше не нужен, удалите
logcfg.xmlили переименуйте его вlogcfg.xml.off. - Подождите 1–2 минуты, пока процессы перестанут писать.
- Удалите содержимое каталога из
location.
Если журнал должен работать дальше, удаляйте только файлы старше текущего часа. Файл, в который процесс пишет сейчас, заблокирован, и Проводник выдаст ошибку «Файл занят другим процессом». Это нормально: пропустите его.
Пустые папки rphost_* от завершённых процессов можно удалять смело. Процесс с этим PID уже не существует.
Дампы: отдельная статья расходов
Дамп — снимок памяти процесса при падении. Полный дамп rphost весит столько же, сколько процесс занимал в памяти, то есть легко от 2 до 10 ГБ. Десять падений за неделю — и пропали полсотни гигабайт.
Каталог дампов задаёт элемент <dump> в том же logcfg.xml. Если элемента нет, ищите папку dumps в профиле пользователя, от которого запущена служба: C:\Users\USR1CV8\AppData\Local\1C\1cv8\dumps.
- 🗑 Старые дампы удаляйте, если уже передали их разработчику или разобрали.
- 🔁 Регулярные свежие дампы — повод искать причину падений, а не только чистить диск.
- 🧭 Для разбора нужен обычно последний дамп, а не весь архив.
Утилита rac: какая папка какой базе принадлежит
Утилита rac сама логи не удаляет. Зато без неё не понять, чей журнал раздулся: в reg_1541 папки названы по GUID базы, а в ТЖ — по PID процесса.
Для rac должен работать сервер администрирования ras. Обычно его ставят службой; по умолчанию он слушает порт 1545. Утилита лежит в каталоге bin нужной версии платформы.
- Узнайте идентификатор кластера:
cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
rac cluster list
- Получите список баз с их GUID:
rac infobase summary list --cluster=<UUID кластера>
Поле infobase в выводе совпадает с именем папки в reg_1541. Так видно, какая база держит журнал регистрации на 40 ГБ.
- Сопоставьте процессы с папками ТЖ:
rac process list --cluster=<UUID кластера>
В выводе есть поле pid. Папка rphost_<pid> с таким числом — журнал живого процесса. Папки с PID, которых в списке нет, остались от завершённых процессов.
Если на кластере задан администратор, добавьте --cluster-user и --cluster-pwd. Остальные параметры смотрите в справке: rac help infobase.
Журнал регистрации: сокращаем средствами платформы
Журнал регистрации пишет действия пользователей и ошибки конкретной базы. В клиент-серверном варианте он хранится на сервере 1С, а не в СУБД. Бэкап SQL его не содержит, и очистка таблиц в SQL здесь не поможет.
Форматы два:
- 📄 старый — файлы
1Cv8.lgfи*.lgp, по одному на период; - 🗄 новый — файл
1Cv8.lgd(база SQLite), появился в 8.3.5.
Через конфигуратор
- Запустите конфигуратор нужной базы.
- Откройте
Администрирование → Настройка журнала регистрации. - Нажмите «Сократить».
- Укажите дату: события раньше неё будут удалены.
- Если старые события нужны для аудита, отметьте сохранение удаляемых записей в файл и укажите путь.
- Подтвердите. На журнале в десятки гигабайт операция идёт долго, не прерывайте её.
Там же задаётся уровень регистрации. «Регистрировать все события» на базе с сотней пользователей даёт гигабайты в месяц. Для большинства баз хватает уровня «Регистрировать ошибки, предупреждения и информацию».
💡 Включите разделение журнала по периодам, например по месяцам. Тогда каждый период лежит в своём файле, и сокращение работает быстрее.
Через пакетный запуск конфигуратора
Для регулярной очистки удобнее параметр /ReduceEventLogSize. Он делает то же, что кнопка «Сократить», только без интерфейса:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /DisableStartupDialogs /ReduceEventLogSize 2026-07-01 -saveAs "E:\archive\buh_eventlog" /Out "E:\logs\reduce_buh.txt"
2026-07-01— дата в формате ГГГГ-ММ-ДД, события до неё удаляются;-saveAs— необязательный ключ: куда выгрузить удаляемое;/Out— файл с результатом. Проверяйте его после каждого запуска.
Не удаляйте файлы 1Cv8.lgd или 1Cv8.lgf вручную при работающей службе. Платформа держит их открытыми. В лучшем случае удаление не пройдёт, в худшем журнал повредится и база начнёт писать ошибки при каждой записи события.
Кэш сеансовых данных: если раздулся srvinfo
Иногда место занимает не журнал, а папки snccntx* внутри reg_1541. Это кэш сеансовых данных. Обычно он небольшой, но после аварийных остановок может вырасти до нескольких гигабайт. Ещё он бывает причиной странных зависаний при входе.
Порядок очистки:
- Предупредите пользователей и выберите окно обслуживания. После остановки службы все сеансы оборвутся, несохранённые данные пропадут.
- Остановите службу «Агент сервера 1С:Предприятия 8.3».
- Убедитесь в диспетчере задач, что процессов
ragent,rmngrиrphostне осталось. - Удалите папки
snccntx*вreg_1541. Файл1CV8Clst.lstи папки с GUID баз не трогайте. - Запустите службу и проверьте вход в базу.
Сервер заново создаст кэш при первом подключении.
Автоматическая очистка логов по расписанию
Ручная уборка раз в квартал заканчивается переполненным диском в пятницу вечером. Лучше настроить задание один раз.
Windows: скрипт и планировщик заданий
Скрипт C:\scripts\clean1c.ps1 удаляет файлы ТЖ старше трёх суток, дампы старше 14 дней и пустые папки процессов:
$tj = 'D:\1C_logs\tj'
$dumps = 'D:\1C_logs\dumps'
Get-ChildItem $tj -Recurse -File -Filter *.log -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
Remove-Item -Force -ErrorAction SilentlyContinue
Get-ChildItem $dumps -File -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-14) } |
Remove-Item -Force -ErrorAction SilentlyContinue
Get-ChildItem $tj -Directory -ErrorAction SilentlyContinue |
Where-Object { -not (Get-ChildItem $_.FullName -Force) } |
Remove-Item -Force -ErrorAction SilentlyContinue
Регистрируем задание, которое запускается каждую ночь в 03:00 от имени SYSTEM:
schtasks /Create /SC DAILY /ST 03:00 /TN "1C clean logs" /RU SYSTEM /TR "powershell -NoProfile -ExecutionPolicy Bypass -File C:\scripts\clean1c.ps1"
Сокращение журнала регистрации добавьте отдельным заданием раз в месяц. В bat-файле дату удобно вычислить через PowerShell, например «сегодня минус 90 дней»:
for /f %%d in ('powershell -NoProfile -Command "(Get-Date).AddDays(-90).ToString('yyyy-MM-dd')"') do set CUT=%%d
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /DisableStartupDialogs /ReduceEventLogSize %CUT% /Out "E:\logs\reduce_buh.txt"
💡 Пароль в bat-файле читают все, у кого есть доступ к папке. Заведите для обслуживания отдельного пользователя базы с правом администрирования и закройте папку со скриптами правами NTFS.
Linux: cron
Те же правила для каталога /var/log/1c/tj одной строкой в crontab -e:
0 3 * * * find /var/log/1c/tj -type f -name '*.log' -mmin +4320 -delete && find /var/log/1c/tj -mindepth 1 -type d -empty -delete
-mmin +4320 — файлы старше трёх суток. Задание запускайте от root или от пользователя usr1cv8, которому принадлежит каталог.
Что идёт не так при очистке логов 1С
Большинство проблем возникает не из-за самой очистки, а из-за удаления не того каталога.
Ещё одна ловушка — несколько logcfg.xml. Если файл лежит и в общем conf, и в каталоге версии, правка одного из них может ни на что не повлиять. Держите один файл и помните, где он.