# Инструменты для работы с проектом ERV ## Обзор Данная папка содержит набор инструментов для обслуживания, мониторинга и управления проектом ERV (Единая Реестровая Выплата). ## Структура файлов ``` erv_project_tools/ ├── README.md # Этот файл ├── PROJECT_DOCUMENTATION.md # Полная документация проекта ├── DEPLOYMENT_GUIDE.md # Руководство по развертыванию ├── backup_erv.sh # Скрипт резервного копирования ├── monitor_erv.sh # Скрипт мониторинга системы ├── maintenance_erv.sh # Скрипт обслуживания системы ├── crontab_setup.sh # Настройка автоматических задач ├── manage_cron.sh # Управление cron задачами ├── generate_weekly_report.sh # Генерация еженедельных отчетов ├── backups/ # Папка с резервными копиями └── logs/ # Папка с логами ``` ## Быстрый старт ### 1. Настройка автоматических задач ```bash sudo ./crontab_setup.sh ``` ### 2. Ручное резервное копирование ```bash ./backup_erv.sh ``` ### 3. Мониторинг системы ```bash ./monitor_erv.sh ``` ### 4. Обслуживание системы ```bash ./maintenance_erv.sh ``` ## Подробное описание инструментов ### 📋 PROJECT_DOCUMENTATION.md Полная техническая документация проекта ERV, включающая: - Архитектуру системы - Описание функциональности - Настройки базы данных - Интеграции с внешними сервисами - Рекомендации по безопасности ### 🚀 DEPLOYMENT_GUIDE.md Пошаговое руководство по развертыванию проекта в продакшене: - Системные требования - Установка зависимостей - Настройка веб-сервера - Настройка базы данных - Настройка SSL - Мониторинг и безопасность ### 💾 backup_erv.sh Скрипт автоматического резервного копирования: **Функции:** - Резервное копирование базы данных - Резервное копирование файлов проекта - Резервное копирование папки cache (критически важно!) - Резервное копирование папки uploads - Сжатие и архивирование - Очистка старых резервных копий - Проверка доступности внешних API **Использование:** ```bash # Автоматическое выполнение ./backup_erv.sh # С выводом в лог ./backup_erv.sh >> logs/backup.log 2>&1 ``` **Результат:** - `erv_db_YYYYMMDD_HHMMSS.sql.gz` - база данных - `erv_files_YYYYMMDD_HHMMSS.tar.gz` - файлы проекта - `erv_cache_YYYYMMDD_HHMMSS.tar.gz` - папка cache - `erv_uploads_YYYYMMDD_HHMMSS.tar.gz` - папка uploads - `backup_info_YYYYMMDD_HHMMSS.txt` - информация о бэкапе ### 📊 monitor_erv.sh Скрипт мониторинга состояния системы: **Проверки:** - Доступность проекта - Размер папки uploads - Состояние папки cache - Подключение к базе данных - Доступность внешних API - Системные ресурсы (диск, память, CPU) - SSL сертификат - Целостность файлов - Последние изменения **Использование:** ```bash # Разовый запуск ./monitor_erv.sh # Автоматический запуск каждые 15 минут */15 * * * * /path/to/monitor_erv.sh ``` **Результат:** - Лог в `logs/monitor.log` - Отчет в `monitor_report_YYYYMMDD_HHMMSS.txt` - Email уведомления при ошибках ### 🔧 maintenance_erv.sh Интерактивный скрипт обслуживания системы: **Операции:** 1. **Полное обслуживание** - все операции 2. **Очистка временных файлов** - PHP сессии, кеш, логи 3. **Оптимизация базы данных** - оптимизация таблиц 4. **Исправление прав доступа** - установка правильных прав 5. **Проверка целостности файлов** - проверка критических файлов 6. **Очистка логов** - архивирование и очистка старых логов 7. **Проверка зависимостей** - PHP, MySQL, расширения 8. **Проверка производительности** - время отклика, соединения 9. **Проверка безопасности** - подозрительные файлы, права доступа **Использование:** ```bash # Интерактивный режим ./maintenance_erv.sh # Автоматическое обслуживание echo "1" | ./maintenance_erv.sh ``` ### ⏰ crontab_setup.sh Скрипт настройки автоматических задач: **Устанавливаемые задачи:** - Резервное копирование: ежедневно в 2:00 - Мониторинг: каждые 15 минут - Обслуживание: еженедельно в воскресенье в 3:00 - Очистка логов: ежемесячно - Проверка SSL: еженедельно - Проверка размера uploads: ежедневно - Проверка доступности сайта: каждые 5 минут - Проверка БД: каждые 10 минут - Проверка API: ежечасно - Еженедельный отчет: по понедельникам в 9:00 **Использование:** ```bash sudo ./crontab_setup.sh ``` ### 📈 generate_weekly_report.sh Скрипт генерации еженедельных отчетов: **Содержимое отчета:** - Статус системы - Использование ресурсов - Размеры папок - Статистика логов - Проблемы за неделю - Рекомендации **Использование:** ```bash # Ручная генерация ./generate_weekly_report.sh # Автоматическая отправка по email ./generate_weekly_report.sh | mail -s "ERV Weekly Report" admin@clientright.ru ``` ### 🎛️ manage_cron.sh Интерактивный скрипт управления cron задачами: **Функции:** 1. Показать все cron задачи ERV 2. Показать логи резервного копирования 3. Показать логи мониторинга 4. Показать логи обслуживания 5. Очистить старые логи 6. Перезапустить cron службу 7. Проверить статус cron службы **Использование:** ```bash ./manage_cron.sh ``` ## Настройка и конфигурация ### Переменные окружения Все скрипты используют следующие переменные: ```bash PROJECT_PATH="/var/www/fastuser/data/www/erv.clientright.ru" TOOLS_DIR="/var/www/fastuser/data/www/crm.clientright.ru/erv_project_tools" DB_NAME="ci20465_erv" DB_USER="ci20465_erv" DB_PASS="c7vOXbmG" EMAIL="admin@clientright.ru" ``` ### Права доступа ```bash # Установка прав на выполнение chmod +x *.sh # Права на директории chmod 755 backups/ logs/ ``` ### Настройка email уведомлений Для отправки email уведомлений установите: ```bash sudo apt install mailutils -y ``` ## Мониторинг и логирование ### Логи Все скрипты ведут логи в папке `logs/`: - `backup.log` - логи резервного копирования - `monitor.log` - логи мониторинга - `maintenance.log` - логи обслуживания ### Ротация логов Логи автоматически ротируются: - Старые логи (>30 дней) удаляются автоматически - Ежемесячная очистка в первый день месяца ### Уведомления Email уведомления отправляются при: - Ошибках в системе - Недоступности сайта - Проблемах с базой данных - Недоступности внешних API - Истечении SSL сертификата - Превышении размера папки uploads ## Безопасность ### Резервные копии - Автоматическое создание ежедневно - Хранение в отдельной папке - Сжатие для экономии места - Автоматическая очистка старых копий ### Мониторинг безопасности - Проверка подозрительных файлов - Контроль прав доступа - Мониторинг изменений в файлах - Проверка целостности критических файлов ### Доступ к скриптам - Все скрипты требуют соответствующих прав - Критические операции требуют подтверждения - Логирование всех действий ## Устранение неполадок ### Частые проблемы 1. **Ошибка прав доступа** ```bash sudo chown -R www-data:www-data /var/www/fastuser/data/www/erv.clientright.ru sudo chmod +x *.sh ``` 2. **Проблемы с cron** ```bash sudo systemctl restart cron sudo systemctl status cron ``` 3. **Проблемы с базой данных** ```bash mysql -uci20465_erv -pc7vOXbmG -e "SELECT 1;" ci20465_erv ``` 4. **Проблемы с логами** ```bash tail -f logs/monitor.log tail -f logs/backup.log ``` ### Проверка работоспособности ```bash # Проверка всех скриптов ./monitor_erv.sh ./backup_erv.sh ./maintenance_erv.sh # Проверка cron задач ./manage_cron.sh ``` ## Контакты и поддержка - **Разработчик**: Фёдор - **Система**: Ubuntu 22.04 - **Проект**: ERV (Единая Реестровая Выплата) - **Статус**: Продакшен ## Лицензия Все инструменты разработаны для внутреннего использования проекта ERV. --- **ВАЖНО**: Всегда тестируйте изменения в staging среде перед применением в продакшене! **ПРЕДУПРЕЖДЕНИЕ**: Папка `/cache` критически важна для работы крона. Никогда не удаляйте её содержимое без создания резервной копии!