325 lines
12 KiB
Markdown
325 lines
12 KiB
Markdown
# Инструменты для работы с проектом 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` критически важна для работы крона. Никогда не удаляйте её содержимое без создания резервной копии!
|