type: standard
aspect: process
title: "Стандарт архивирования логов"
version: 1.0.0
date: 2026-02-19
status: active
Версия: 1.0.0
Дата: 2026-02-14
Уровень: У1 (Стандарт)
Логи за неделю — АКТИВНЫЕ (в /var/log)
Логи старше недели — АРХИВ (в S3)
Система автоматически архивирует старые логи, предотвращая переполнение диска.
| Период | Где | Формат | Доступ |
|---|---|---|---|
| 0-7 дней | /var/log |
raw + gzip | Мгновенный |
| >7 дней | $INFRA/logs/archive/YYYY-MM/ |
gzip | Архив |
| Journal | ограничен 500MB | systemd | journalctl |
Файл: infra/scripts/archive-logs.sh
Что делает:
1. Находит логи старше 7 дней
2. Копирует в архив $INFRA/logs/archive/YYYY-MM/
3. Удаляет оригиналы
4. Очищает journal до 500MB
Запуск: Автоматически через system/scheduler
Файл: system/scheduler/schedule.yaml
archive_logs:
description: "Еженедельное архивирование логов старше 7 дней"
command: "bash infra/scripts/archive-logs.sh"
cron: "0 3 * * 0" # воскресенье 03:00
enabled: true
Когда: Каждое воскресенье в 03:00
$INFRA/logs/archive/
├── 2026-01/
│ ├── syslog.1.gz
│ ├── auth.log.1.gz
│ └── ...
├── 2026-02/
│ ├── syslog.1.gz
│ ├── kern.log.2.gz
│ └── ...
└── ...
Организация: По месяцам (YYYY-MM)
.log.* (rotated логи).gz архивы (старше 7 дней).1, .2, .3 и т.д. (rotated без gzip)/tmp (очищаются отдельно)bash infra/scripts/archive-logs.sh
find /var/log -type f \( -name "*.log.*" -o -name "*.gz" \) -mtime +7
# Найти файл
ls -la $INFRA/logs/archive/2026-02/
# Распаковать
gunzip $INFRA/logs/archive/2026-02/syslog.1.gz
# Или посмотреть без распаковки
zcat $INFRA/logs/archive/2026-02/syslog.1.gz | less
# Последний запуск
grep "archive_logs" /var/log/claude-scheduler.log | tail -20
# Размер архива
du -sh $INFRA/logs/archive/
# Логи в /var/log
du -sh /var/log
# Архив
du -sh $INFRA/logs/archive/
# Journal
journalctl --disk-usage
mountpoint $INFRA
systemctl status infra-mount.service
bash infra/scripts/archive-logs.sh
# Удалить старые rotated логи БЕЗ архивирования
find /var/log -name "*.gz" -mtime +7 -delete
journalctl --vacuum-size=100M
bash infra/scripts/archive-logs.sh
# Редактировать schedule.yaml
vim system/scheduler/schedule.yaml
# Изменить enabled: true → enabled: false
archive_logs:
enabled: false
# Ежедневно в 03:00
archive_logs:
at: "03:00"
# Раз в 2 недели
archive_logs:
cron: "0 3 * * 0/2" # каждое 2-е воскресенье
| Процесс | Связь |
|---|---|
| cleanup | Очистка /tmp и старых файлов |
| backup_rotate | Бэкапы тоже ротируются (7d/1m/12y) |
| monitor | Следит за заполнением диска |
Последовательность:
02:00 — backup_L1_system
03:00 — archive_logs (это)
03:00 — backup_rotate
2026-02-14 (v1.0.0): Первая версия
- Создан скрипт infra/scripts/archive-logs.sh
- Добавлена задача в scheduler
- Создан стандарт
Реализация:
- Скрипт: infra/scripts/archive-logs.sh
- Расписание: system/scheduler/schedule.yaml
Связанные стандарты:
- process-backup.md — Бэкапы
- ../4-policy/policy-infra.md — Политика инфраструктуры
- process-resource-check.md — Проверка ресурсов
Документация:
- system/scheduler/CLAUDE.md — Работа scheduler
Версия: 1.0.0