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