# 🚨 КРИТИЧЕСКИЙ ОТЧЁТ: МАССОВОЕ УДАЛЕНИЕ ФАЙЛОВ ## 📅 ДАТА ИНЦИДЕНТА: **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 - ❌ Дублирование данных --- ## 🔧 ТЕХНИЧЕСКИЕ ДЕТАЛИ: ### Пути в корзине: ```bash /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 расшифровка: ```bash 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 запускается раз в неделю ### 🔬 ДОКАЗАТЕЛЬСТВА: ```bash # 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 часов): ```bash # Сделать бэкап корзины (ГОТОВО ✅) /backup/nextcloud_trashbin_20251102_233351.tar.gz ``` ### 2. ЗАВТРА (в течение 48 часов): Выбрать вариант восстановления и восстановить файлы ### 3. ПОСЛЕ ВОССТАНОВЛЕНИЯ: - [ ] Отключить автоочистку Nextcloud - [ ] Настроить правильную индексацию S3 External Storage - [ ] Проверить cron jobs Nextcloud - [ ] Настроить автоматический бэкап Nextcloud ---