clean_job_logs

Удаление старых логов выполнения задач из базы данных

Зачем нужна

Команда удаляет только записи о результатах выполнения UEM-задач (audit_logevent с name = JOB_RESULT), не трогая остальные записи аудита (входы, HTTP-запросы, CRUD-события). Логи задач — самая «тяжёлая» часть журнала на серверах с регулярной инвентаризацией и массовыми политиками: они быстрее остальных переполняют базу

Типичные случаи применения:

  • регулярная очистка логов задач по расписанию, чтобы журнал не разрастался без контроля

  • сократить размер журнала задач после массового запуска инвентаризации или большой партии политик

  • освобождение места в базе перед бэкапом или миграцией без потери остального аудита (входов, доступов, изменений объектов)

Важно

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

Синтаксис

rude clean_job_logs [minutes/hours/days/weeks] [amount] [--batch-size N] [--batch-pause SECONDS]

Параметры

Параметр

Описание

{minutes/hours/days/weeks}

Единица измерения периода: minutes (минуты), hours (часы), days (дни), weeks (недели)

amount

Количество единиц периода (целое число)

–batch-size

Количество записей в одном батче удаления. Значение по умолчанию: 10000

–batch-pause

Пауза между полными батчами в секундах. Значение по умолчанию: 0.1. Значение 0 отключает паузы

Регулировка нагрузки на базу данных

Записи удаляются батчами в отдельных транзакциях. По умолчанию один батч содержит 10 000 записей, а между полными батчами команда делает паузу 0,1 секунды. Такой режим ограничивает размер одной транзакции и даёт базе данных короткие интервалы для обработки других запросов.

Параметры --batch-size и --batch-pause позволяют регулировать нагрузку:

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

  • больший размер батча и короткая пауза ускоряют очистку, но создают более высокую нагрузку на диски, WAL и autovacuum

  • значение --batch-pause 0 отключает паузы между батчами

Важно

В отличие от clean_audit_logs, команда удаляет только записи о результатах выполнения задач (записи аудита с name = JOB_RESULT). Остальные записи аудита (входы, HTTP-запросы, CRUD-события и т.д.) сохраняются. Операция необратима

Пример

Чтобы удалить логи задач, которым более пяти дней, введите следующее:

rude clean_job_logs days 5

После выполнения команды записи о выполнении задач старше пяти дней будут удалены

Чтобы снизить нагрузку на базу данных при удалении большого объёма логов, можно использовать батчи по 5 000 записей с паузой 0,2 секунды:

rude clean_job_logs days 5 --batch-size 5000 --batch-pause 0.2