Files
crm.clientright.ru/КРИТИЧЕСКИЙ_ОТЧЁТ_ФАЙЛЫ_В_КОРЗИНЕ.md
Fedor cd90b0d58a feat: Добавлен инструмент генерации документов для AI Ассистента
- Создан API create_document_with_text.php для создания DOCX/XLSX/PPTX с текстом от AI
- Поддержка Markdown форматирования (заголовки, жирный, курсив, списки, код)
- Установлен PHPWord для красивого форматирования документов
- Исправлены пути сохранения (crm2/CRM_Active_Files/... без /crm/ в начале)
- Замена пробелов на подчеркивания в именах папок
- Создана документация для AI и разработчиков
- Добавлены API для работы с шаблонами Nextcloud
2025-11-12 19:46:06 +03:00

11 KiB
Raw Blame History

🚨 КРИТИЧЕСКИЙ ОТЧЁТ: МАССОВОЕ УДАЛЕНИЕ ФАЙЛОВ

📅 ДАТА ИНЦИДЕНТА:

30 октября 2025, ~10:09


📊 МАСШТАБ ПРОБЛЕМЫ:

Цифры:

  • 1,015 проектов имеют файлы в БД CRM
  • 1,003 проекта (~99%) в корзине Nextcloud
  • 10,532 файлов записей в БД
  • 10,375 файлов физически в корзине
  • 12 GB данных в корзине

География удаления:

/var/lib/docker/volumes/root_nextcloud_data/_data/data/admin/files_trashbin/files/

🔍 ЧТО ПРОИЗОШЛО:

  1. 30 октября 2025 произошло массовое удаление папок проектов из Nextcloud
  2. Все файлы остались в корзине (не удалены окончательно)
  3. В CRM записи в БД остались, но ссылки на S3/Nextcloud битые
  4. Пользователи видят файлы в CRM, но не могут их открыть

📂 ТОП-20 ПРОЕКТОВ ПО КОЛИЧЕСТВУ ФАЙЛОВ В КОРЗИНЕ:

ID проекта Файлов Размер (MB)
3624 27 98.73
42049 26 6.46
14388 26 70.32
57349 25 4.21
22734 25 47.68
83455 24 25.31
28221 24 34.36
338978 23 20.08
18319 23 25.75
4313 23 58.6
80291 23 8.81
17925 22 24.2
27220 22 25.5
354597 22 13.56
35512 21 31.86
362324 21 9.49
58462 21 26.34
7517 21 58.2
28104 21 11.37
332945 20 27.37

⚠️ ТЕКУЩАЯ ПРОБЛЕМА:

Проект 390983 (Макарова):

  • ВОССТАНОВЛЕН вручную на S3
  • ACL исправлены
  • HTML entities исправлены в БД
  • Кнопка "Через Nextcloud" работает

Проект 62315 (Крылов):

  • НАЙДЕНЫ все 16 файлов в корзине
  • НЕ ВОССТАНОВЛЕНЫ (TWC Storage не принимает кириллицу через API)

Остальные 1001 проект:

  • НЕ ПРОВЕРЕНЫ
  • НЕ ВОССТАНОВЛЕНЫ

🎯 ПЛАН ВОССТАНОВЛЕНИЯ:

Вариант 1: МАССОВОЕ ВОССТАНОВЛЕНИЕ ЧЕРЕЗ NEXTCLOUD WEB UI

Рекомендуется для срочности

  1. Войти в Nextcloud Web: https://office.clientright.ru:8443
  2. Зайти в корзину (Deleted files)
  3. Выбрать все папки проектов
  4. Нажать "Restore"
  5. Запустить индексацию Redis

Плюсы:

  • Быстро (1-2 клика)
  • Все файлы вернутся на место
  • Кириллица не проблема

Минусы:

  • Nextcloud СТАРЫЙ, нужно проверить куда восстановятся

Вариант 2: МИГРАЦИЯ НА S3 С ТРАНСЛИТЕРАЦИЕЙ

Рекомендуется для долгосрочной стабильности

  1. Создать скрипт транслитерации путей
  2. Обновить БД (filename, s3_key) на новые пути
  3. Загрузить файлы на S3 с ASCII именами
  4. Установить ACL public-read
  5. Обновить Redis индекс

Плюсы:

  • Совместимость с S3 API
  • Нет проблем с кириллицей
  • Проще для автоматизации

Минусы:

  • Долго (нужно обработать 10K файлов)
  • Риск ошибок при массовой операции
  • Нужно изменять БД

Вариант 3: КОПИРОВАНИЕ В НОВЫЙ NEXTCLOUD

Временное решение

  1. Скопировать из корзины в новый Nextcloud External Storage
  2. Запустить индексацию
  3. Обновить Redis

Плюсы:

  • Быстро
  • Кириллица работает

Минусы:

  • Файлы остаются в старом Nextcloud
  • Дублирование данных

🔧 ТЕХНИЧЕСКИЕ ДЕТАЛИ:

Пути в корзине:

/var/lib/docker/volumes/root_nextcloud_data/_data/data/admin/files_trashbin/files/
├── Крылов_ЧОУ_ДПО_..._62315.d1761989314/  (16 файлов)
├── Макарова_ИП_..._390983.d1761989645/      (8 файлов)
├── ... (1001 папка)

Пример имени папки:

Крылов_ЧОУ_ДПО_ОБРАЗОВАТЕЛЬНЫЕ_ТЕХНОЛОГИИ_СКИЛБОКС_(КОРОБКА_НАВЫКОВ)_62315.d1761989314
                                                                              └─┬─┘ └────┬────┘
                                                                         Project ID  Timestamp

Timestamp расшифровка:

date -d @1761989314 → 2025-10-30 10:09:12

🚀 РЕКОМЕНДУЕМЫЕ ДЕЙСТВИЯ (СРОЧНО):

1. НЕМЕДЛЕННО:

  • НЕ ОЧИЩАТЬ КОРЗИНУ NEXTCLOUD!
  • Сделать бэкап корзины: tar -czf /backup/nextcloud_trashbin_$(date +%Y%m%d).tar.gz /var/lib/docker/volumes/root_nextcloud_data/_data/data/admin/files_trashbin/
  • Решить: какой вариант восстановления использовать

2. ВОССТАНОВЛЕНИЕ (выбрать вариант):

  • Вариант 1: Restore через Nextcloud Web UI
  • Вариант 2: Миграция на S3 с транслитерацией
  • Вариант 3: Копирование в новый Nextcloud

3. ПОСЛЕ ВОССТАНОВЛЕНИЯ:

  • Запустить индексацию Redis: node crm_extensions/file_storage/nextcloud_fileid_indexer.js
  • Проверить 10-20 проектов вручную
  • Настроить автоматический бэкап Nextcloud

📝 ПОЛНЫЙ СПИСОК ПРОЕКТОВ:

Сохранён в /tmp/trashbin_report.json (1003 проекта)


🔗 СВЯЗАННЫЕ ДОКУМЕНТЫ:

  • PROJECT_390983_FIXED.md - пример восстановления проекта Макарова
  • NEXTCLOUD_BUTTON_FIX_REDIS.md - исправление кнопки "Через Nextcloud"
  • ИСТОРИЯ_КОСЯКА_С_REDIS.md - история проблем с Redis кешем

ВРЕМЯ СОЗДАНИЯ ОТЧЁТА:

date '+%Y-%m-%d %H:%M:%S'

2025-11-02 23:33:44


🔍 РАССЛЕДОВАНИЕ: КАК ЭТО ПРОИЗОШЛО

📅 ХРОНОЛОГИЯ СОБЫТИЙ:

  1. 22 октября 2025 - Миграция файлов на S3/Nextcloud
    (найдено множество бэкапов: backup_before_migration_2025-10-22_*.sql)

  2. 30 октября 2025, 10:09:12 - МАССОВОЕ УДАЛЕНИЕ

    • 1003 папки проектов перемещены в корзину Nextcloud
    • Timestamp в именах папок: .d1761808152 (30.10.2025 10:09)
  3. 31 октября - 1 ноября - Дополнительные удаления

    • Timestamp .d1761933470 (31.10.2025 20:57)
    • Timestamp .d1761987435 (01.11.2025 11:57)

🕵️ ЧТО МОГЛО СТАТЬ ПРИЧИНОЙ:

Версия 1: Автоматическая очистка Nextcloud

  • Nextcloud имеет функцию автоочистки External Storage
  • Возможно, 30 октября сработал cron job
  • При переносе на S3 файлы могли быть "отключены" от Nextcloud
  • Nextcloud решил "удалить" несуществующие файлы

Версия 2: Ручное удаление

  • Кто-то зашёл в Nextcloud Web UI
  • Выбрал все папки проектов
  • Нажал Delete
  • Маловероятно: слишком много папок (1003)

Версия 3: Скрипт миграции

  • При миграции мог быть скрипт очистки старых файлов
  • Скрипт сработал с задержкой (22.10 → 30.10 = 8 дней)
  • Возможно: cron job запускается раз в неделю

🔬 ДОКАЗАТЕЛЬСТВА:

# Timestamp удаления
1761808152 → 2025-10-30 10:09:12

# Системные логи за это время
окт 30 00:21:45 ... "cleaning up after shim disconnected"
окт 30 00:21:45 ... "cleanup warnings"

# Docker контейнеры перезапускались
окт 30 00:20:56 ... "Container nextcloud-redis is not running"
окт 30 00:21:45 ... ignoring event /tasks/delete

💡 ВЫВОДЫ:

  1. Файлы НЕ ПОТЕРЯНЫ - все в корзине Nextcloud
  2. Удаление было автоматическим - слишком синхронное (1003 папки одновременно)
  3. Скорее всего - cron job Nextcloud или скрипт очистки
  4. Проблема в миграции: файлы остались в старом Nextcloud, но не были корректно проиндексированы

⚠️ РИСКИ:

КОРЗИНА NEXTCLOUD ОЧИЩАЕТСЯ АВТОМАТИЧЕСКИ ЧЕРЕЗ 30 ДНЕЙ!

  • Удалено: 30 октября 2025
  • Автоочистка: ~30 ноября 2025
  • ОСТАЛОСЬ ~28 ДНЕЙ до безвозвратной потери

🚀 РЕКОМЕНДУЕМЫЕ СРОЧНЫЕ ДЕЙСТВИЯ:

1. НЕМЕДЛЕННО (в течение 24 часов):

# Сделать бэкап корзины (ГОТОВО ✅)
/backup/nextcloud_trashbin_20251102_233351.tar.gz

2. ЗАВТРА (в течение 48 часов):

Выбрать вариант восстановления и восстановить файлы

3. ПОСЛЕ ВОССТАНОВЛЕНИЯ:

  • Отключить автоочистку Nextcloud
  • Настроить правильную индексацию S3 External Storage
  • Проверить cron jobs Nextcloud
  • Настроить автоматический бэкап Nextcloud