Очистка логов сервера 1С 8.3 без потери данных: что можно удалять, а что нельзя

· 9 мин

Содержание

Чтобы почистить логи сервера 1С 8.3, разделите их на три группы: журнал регистрации (хранится рядом с базой), технологический журнал (пишется в каталог из logcfg.xml) и временные файлы процессов rphost. Каждая группа чистится своим способом. Каталог кластера srvinfo целиком удалять нельзя: там живёт реестр кластера и файловые базы.

Диск забился на сервере 1С почти всегда по одной из трёх причин: разросся технологический журнал, который включили «на время» и забыли, журнал регистрации не сокращали годами, или накопились каталоги сеансов. Ниже порядок действий от безопасного к радикальному.

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

1. Что именно занимает место: смотрим структуру каталогов

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

Типовые места на Windows:

  • 📁 C:\Program Files\1cv8\srvinfo — каталог кластера (на Linux — /home/usr1cv8/.1cv8/1C/1cv8 или путь, заданный при установке);
  • 📁 srvinfo\reg_1541 — реестр кластера для порта 1541, внутри папки с GUID каждой базы;
  • 📁 srvinfo\reg_1541\<GUID базы>\1Cv8Log — файловый журнал регистрации базы;
  • 📁 srvinfo\reg_1541\snccntx<...> — данные сеансов (серверный кэш и временные структуры);
  • 📁 каталог технологического журнала — тот, что указан в logcfg.xml в теге <log location="...">;
  • 📁 %TEMP% учётной записи, от которой запущена служба сервера 1С (обычно USR1CV8), — временные файлы рабочих процессов.

Быстрая оценка размеров в PowerShell:

Get-ChildItem "C:\Program Files\1cv8\srvinfo" -Directory -Recurse -Depth 2 |
  ForEach-Object {
    $size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
             Measure-Object Length -Sum).Sum
    [pscustomobject]@{ Path = $_.FullName; GB = [math]::Round($size / 1GB, 2) }
  } | Sort-Object GB -Descending | Select-Object -First 15

Скрипт выведет пятнадцать самых тяжёлых папок. Если в лидерах каталог технологического журнала, начинайте с раздела 4. Если 1Cv8Log — с раздела 2.

Для разовой проверки подойдёт и бесплатная утилита вроде WinDirStat, но на сервере без графики скрипт удобнее.

Что растётПризнакКуда смотреть
Журнал регистрацииФайлы .lgp, .lgx, 1Cv8.lgf на десятки гигабайтРаздел 2
Технологический журналПапки по именам процессов, файлы по часамРаздел 4
Данные сеансовМного папок snccntx...Раздел 3
Временные файлы%TEMP% службы раздутРаздел 3

2. Сокращение журнала регистрации: через консоль RAS и штатные средства

Журнал регистрации хранит события пользователей: входы, изменения данных, ошибки. Файловым его делают по умолчанию, и он растёт, пока вы его не сократите. Для клиент-серверных баз журнал тоже лежит в файлах, а не в SQL, если вы не переключали формат.

Безопасный способ — штатное сокращение. Его делают в Конфигураторе: меню Администрирование → Журнал регистрации. Там задаётся дата, до которой нужно удалить записи, и при желании выгрузка удаляемых записей в файл. Выгрузка — страховка на случай проверки.

Порядок действий:

  1. Откройте базу в Конфигураторе под администратором.
  2. Зайдите в Администрирование → Журнал регистрации.
  3. Задайте дату: оставьте последние 3–6 месяцев, остальное сократите.
  4. Включите выгрузку в файл, если записи могут понадобиться для разбирательств.
  5. Дождитесь окончания. На большом журнале операция идёт долго, и пользователей лучше не пускать.

Журнал регистрации можно заставить «резаться» сам. В параметрах журнала (Администрирование → Параметры журнала регистрации) укажите период разделения: месяц или неделя. Файлы начнут дробиться, и старые части проще удалять целиком.

Консоль RAS (сервер администрирования, утилита rac) журнал регистрации не сокращает: она управляет кластером, сеансами и соединениями. Зато RAS нужна перед чисткой, чтобы вывести из базы пользователей и зависшие сеансы:

rac cluster list
rac session list --cluster=<GUID_кластера>
rac session terminate --cluster=<GUID_кластера> --session=<GUID_сеанса>

Сначала смотрите список, потом закрывайте сеансы по одному. Команда terminate без разбора обрывает работу людей, которые, возможно, проводят документы.

Не удаляйте файлы журнала регистрации вручную из каталога 1Cv8Log, пока база открыта. Можно получить повреждённый журнал, и 1С будет ругаться при запуске. Если журнал уже испорчен, остановите работу с базой, переименуйте папку 1Cv8Log и запустите базу: 1С создаст журнал заново. Старые записи при этом потеряются.

3. Ручное удаление временных файлов и каталогов сеансов

С временными данными проще: их сервер при штатной остановке чистит сам. Мусор остаётся после аварийных падений, убитых процессов и перезагрузок по питанию.

Временные файлы рабочих процессов

Рабочие процессы rphost пишут временные файлы в %TEMP% пользователя службы. Если служба работает от USR1CV8, ищите папку C:\Users\USR1CV8\AppData\Local\Temp. Если от системной учётной записи — C:\Windows\Temp.

Чистить можно в окно, когда сервер остановлен или нагрузки нет:

  1. Остановите службу «Агент сервера 1С:Предприятия 8.3».
  2. Убедитесь, что в диспетчере задач не осталось процессов rphost.exe, rmngr.exe, ragent.exe.
  3. Удалите содержимое папки Temp учётной записи службы.
  4. Запустите службу.

Каталоги сеансов snccntx

Папки snccntx... в каталоге кластера — данные сеансов. Живые сеансы используют свои папки, поэтому при работающем сервере удалять их нельзя. После остановки службы осиротевшие папки безопасно удаляются: при следующем запуске сервер создаст нужные заново.

Файлы 1CV8Clst.lst, 1CV8Reg.lst и подкаталоги с GUID баз не трогайте. Это реестр кластера. Потеря 1CV8Clst.lst означает, что сервер «забудет» все зарегистрированные базы.

Чтобы не гадать, какие каталоги можно убирать, сверьте их с датой последнего изменения. Если папка не обновлялась недели, а сервер перезапускали после этого, она лишняя. Но удаляйте не сразу: сначала перенесите на другой диск и подождите несколько дней.

4. Технологический журнал: как удалить и как настроить, чтобы не раздувался

Технологический журнал включается файлом logcfg.xml в каталоге conf установленной платформы (C:\Program Files\1cv8\conf). Его включают для поиска причин блокировок и зависаний, и он быстро забивает диск: за сутки на нагруженной базе набегают десятки гигабайт.

Простейший сценарий: журнал больше не нужен.

  1. Откройте logcfg.xml и уберите нужные <log> или удалите файл целиком.
  2. Подождите минуту-две: сервер перечитывает настройки сам.
  3. Удалите каталог, который был указан в location.

Если журнал нужен, но объём надо ограничить, настройте срок хранения прямо в logcfg.xml:

<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\1c-techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Параметр history задаёт, сколько часов хранить файлы. Старые удаляет сам сервер. В примере записываются только события-исключения EXCP, что уменьшает поток в сотни раз по сравнению с «писать всё».

💡 Каталог для технологического журнала выносите на отдельный том. Если журнал переполнит его, сервер 1С и база на основном диске продолжат работать.

5. Автоматизация: скрипты PowerShell и Bash

Ручную чистку забывают. Поставьте скрипт на расписание и проверьте один раз, что он не заденет лишнего.

PowerShell для Windows

Скрипт удаляет файлы технологического журнала и временные файлы старше семи дней:

$days = 7
$limit = (Get-Date).AddDays(-$days)
$paths = @("D:\1c-techlog", "C:\Users\USR1CV8\AppData\Local\Temp")

foreach ($p in $paths) {
    Get-ChildItem $p -Recurse -File -ErrorAction SilentlyContinue |
        Where-Object { $_.LastWriteTime -lt $limit } |
        Remove-Item -Force -ErrorAction SilentlyContinue
}

Запускайте его планировщиком заданий раз в сутки ночью. Первый запуск проведите с ключом -WhatIf у Remove-Item: так увидите список файлов, который будет удалён, ничего не стерев.

Bash для Linux

#!/bin/bash
# Удаляем файлы тех. журнала и временные файлы старше 7 дней
find /var/log/1c-techlog -type f -mtime +7 -delete
find /tmp -user usr1cv8 -type f -mtime +7 -delete
# Удаляем пустые каталоги
find /var/log/1c-techlog -type d -empty -delete

Положите скрипт в /etc/cron.daily/ или добавьте строку в crontab пользователя root. Путь к журналу подставьте свой.

Не ставьте в скрипт чистку всего каталога srvinfo. Удаляйте только заведомо временные папки: технологический журнал, %TEMP%, осиротевшие snccntx. Журнал регистрации чистится штатными средствами, а не по дате файла.

6. Файловый и клиент-серверный вариант: что меняется

В файловой базе (папка с 1Cv8.1CD) серверных логов нет совсем. Журнал регистрации лежит рядом с файлом базы в папке 1Cv8Log, а временные файлы пишутся в %TEMP% пользователя, который запускает клиент. Здесь чистят каталог %TEMP% на рабочих местах и сокращают журнал регистрации штатно.

В клиент-серверном варианте место делится между двумя хранилищами:

ЧтоФайловый вариантКлиент-серверный вариант
Данные базыФайл 1Cv8.1CDСУБД (PostgreSQL, MS SQL)
Журнал регистрацииПапка 1Cv8Log у базыПапка 1Cv8Log в srvinfo\reg_1541\<GUID>
Технологический журналНе пишется серверомПо logcfg.xml на сервере 1С
Лог СУБДНетОтдельно, средствами СУБД

Лог самой СУБД — отдельная тема. В MS SQL разрастается журнал транзакций (.ldf), если база в полной модели восстановления без регулярных копий журнала. Тут вычищают не файлы, а настраивают резервное копирование транзакций. В PostgreSQL рост дают логи в pg_log или log каталога данных и WAL-файлы; ротация настраивается в postgresql.conf.

Файлы .ldf и WAL нельзя удалять вручную. Это повредит базу целиком.

7. Мониторинг: как не допустить переполнения диска снова

Чистка решает проблему на месяц. Чтобы она не вернулась, настройте контроль:

  • 📊 оповещение при заполнении диска больше 80% — любым мониторингом: Zabbix, средствами Windows или обычным скриптом с письмом;
  • 🗂 отдельный том под технологический журнал и временные файлы;
  • ⏱ параметр history в logcfg.xml — всегда задан;
  • 📅 регулярное сокращение журнала регистрации по расписанию;
  • 🧹 ночная задача на чистку %TEMP% и устаревших логов.
Что проверить после чистки сервера
Выполнено: 0 / 5

Частые ошибки при чистке и как их избежать

Большинство аварий после «уборки» повторяются из раза в раз. Вот самые типичные.

  • ❌ Удалили файлы вручную, пока служба работала. Часть файлов занята процессом, часть — нет, и структура журнала ломается. Сначала остановите службу или сократите журнал штатно.
  • ❌ Почистили диск C:, а журнал пишется на D:. Проверьте путь в location файла logcfg.xml, прежде чем искать причину в другом месте.
  • ❌ Скрипт запущен от обычного пользователя и молча ничего не удаляет. Задание в планировщике должно идти от учётной записи с правом записи в эти каталоги. Проверьте результат по размеру папки на следующий день.
  • ❌ В маске скрипта опечатка, и под удаление попал соседний каталог. Всегда сначала запускайте с -WhatIf (PowerShell) или с -print вместо -delete (find).
  • ❌ Выставили history="1" и потеряли материал для разбора инцидента, который случился позавчера. Для расследований держите 24–72 часа, для фонового режима хватит суток.

Пример безопасной проверки в Linux перед удалением: сначала посмотрите, что попадёт под маску.

find /var/log/1c-techlog -type f -mtime +7 -print | head -50

Если в списке только файлы журнала и ничего лишнего, замените -print на -delete.

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

Можно ли удалить папку srvinfo целиком?
Нет. В ней реестр кластера и серверные файлы баз. Удалять можно только временные подкаталоги и журналы, а сам реестр потеряется вместе с регистрацией баз.
Можно ли удалять логи при работающих пользователях?
Технологический журнал и временные файлы старше нескольких дней — можно. Журнал регистрации и каталоги активных сеансов при работе пользователей не трогайте.
Почему после очистки место на диске не освободилось?
Часто файл удерживает процесс rphost или антивирус. Перезапустите службу сервера 1С. Ещё проверьте корзину: удаление через проводник отправляет файлы туда.
Как узнать, что технологический журнал включён?
Откройте каталог conf платформы и найдите logcfg.xml. Если файл есть и в нём есть теги <log>, журнал пишется в каталог из location.
Нужно ли чистить журнал регистрации, если база небольшая?
Если журнал занимает считаные гигабайты и диск свободен, срочности нет. Но период разделения лучше выставить сразу, а сокращать раз в год.