🛡️ Безопасность данных

Автоматическое резервное копирование EspoCRM

В отличие от облачных CRM, при установке на свой сервер (On-Premise) вы несете полную ответственность за сохранность данных. Жесткий диск сервера может выйти из строя, а менеджер может случайно массово удалить важные сделки.

Что именно нужно бэкапить?

Для полного восстановления системы требуется сохранять две сущности:

  • Дамп базы данных (MariaDB / MySQL): Хранит тексты писем, контакты, воронки, пароли и всю структуру. Это самый критичный компонент.
  • Файлы системы (Директория data): Хранит вложения к письмам, загруженные документы, аватарки и кастомные скрипты расширений.

Скрипт автоматического бэкапа

Мы настроим bash-скрипт, который будет архивировать файлы и делать дамп базы данных, сохраняя архивы в отдельную локальную папку на сервере.

#!/bin/bash
# Настройки
BACKUP_DIR="/var/backups/espocrm"
DATE=$(date +"%Y-%m-%d_%H-%M")
CONTAINER_DB="espocrm_mariadb_1"
DB_USER="espo_user"
DB_PASS="secure_db_password"
DB_NAME="espocrm"
DATA_DIR="/opt/espocrm/data"

# Создаем директорию, если ее нет
mkdir -p "$BACKUP_DIR"

# 1. Дамп базы данных
docker exec $CONTAINER_DB mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > "$BACKUP_DIR/db_$DATE.sql"
gzip "$BACKUP_DIR/db_$DATE.sql"

# 2. Архивация файлов (вложения и кастомные данные)
tar -czf "$BACKUP_DIR/files_$DATE.tar.gz" -C "$DATA_DIR" .

# 3. Удаление старых копий (старше 14 дней)
find "$BACKUP_DIR" -type f -name "*.gz" -mtime +14 -exec rm {} \;

echo "Backup completed successfully for $DATE"

Настройка расписания в Cron

Чтобы скрипт выполнялся каждую ночь в 02:00, добавляем его в системный планировщик cron. Выполните команду crontab -e и добавьте строку:

0 2 * * * /root/scripts/espo_backup.sh >> /var/log/espo_backup.log 2>&1

Важное примечание: Данный скрипт сохраняет копии локально на сервере. Это спасет от программных сбоев или случайного удаления данных. Однако в случае физической гибели жесткого диска самого VPS сервера эти бэкапы будут утеряны вместе с ним.

Как проверить бэкап?

Бэкап Шредингера - это бэкап, который ни разу не пытались восстановить. Обязательно тестируйте архивы:

  • Разархивируйте db_дата.sql.gz и проверьте, что внутри есть текстовые SQL-команды `CREATE TABLE`.
  • Раз в полгода поднимайте тестовый контейнер EspoCRM на домашнем ПК и пытайтесь "накатить" дамп, чтобы убедиться в его работоспособности.

Нужна надежная защита данных?

В рамках настройки под ключ я настраиваю Healthcheck-мониторинг, автоматические бэкапы и провожу инструктаж по восстановлению системы после сбоев.

Рассчитать стоимость настройки CRM
← Вернуться к списку статей Практикума