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