Очистка логов сервера 1С 8.3 без потери данных: что можно удалять, а что нельзя
Содержание
Чтобы почистить логи
сервера 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, если вы не переключали формат.
Безопасный способ — штатное сокращение. Его делают в Конфигураторе: меню Администрирование → Журнал регистрации. Там задаётся дата, до которой нужно удалить записи, и при желании выгрузка удаляемых записей в файл. Выгрузка — страховка на случай проверки.
Порядок действий:
- Откройте базу в Конфигураторе под администратором.
- Зайдите в
Администрирование→Журнал регистрации. - Задайте дату: оставьте последние 3–6 месяцев, остальное сократите.
- Включите выгрузку в файл, если записи могут понадобиться для разбирательств.
- Дождитесь окончания. На большом журнале операция идёт долго, и пользователей лучше не пускать.
Журнал регистрации можно заставить «резаться» сам. В параметрах журнала (Администрирование → Параметры журнала регистрации) укажите период разделения: месяц или неделя. Файлы начнут дробиться, и старые части проще удалять целиком.
Консоль 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С:Предприятия 8.3».
- Убедитесь, что в диспетчере задач не осталось процессов
rphost.exe,rmngr.exe,ragent.exe. - Удалите содержимое папки
Tempучётной записи службы. - Запустите службу.
Каталоги сеансов snccntx
Папки snccntx... в каталоге кластера — данные сеансов. Живые сеансы используют свои папки, поэтому при работающем сервере удалять их нельзя. После остановки службы осиротевшие папки безопасно удаляются: при следующем запуске сервер создаст нужные заново.
Файлы 1CV8Clst.lst, 1CV8Reg.lst и подкаталоги с GUID баз не трогайте. Это реестр кластера. Потеря 1CV8Clst.lst означает, что сервер «забудет» все зарегистрированные базы.
Чтобы не гадать, какие каталоги можно убирать, сверьте их с датой последнего изменения. Если папка не обновлялась недели, а сервер перезапускали после этого, она лишняя. Но удаляйте не сразу: сначала перенесите на другой диск и подождите несколько дней.
4. Технологический журнал: как удалить и как настроить, чтобы не раздувался
Технологический журнал включается файлом logcfg.xml в каталоге conf установленной платформы (C:\Program Files\1cv8\conf). Его включают для поиска причин блокировок и зависаний, и он быстро забивает диск: за сутки на нагруженной базе набегают десятки гигабайт.
Простейший сценарий: журнал больше не нужен.
- Откройте
logcfg.xmlи уберите нужные<log>или удалите файл целиком. - Подождите минуту-две: сервер перечитывает настройки сам.
- Удалите каталог, который был указан в
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%и устаревших логов.
Частые ошибки при чистке и как их избежать
Большинство аварий после «уборки» повторяются из раза в раз. Вот самые типичные.
- ❌ Удалили файлы вручную, пока служба работала. Часть файлов занята процессом, часть — нет, и структура журнала ломается. Сначала остановите службу или сократите журнал штатно.
- ❌ Почистили диск
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.