Резервное копирование сайта на 1С-Битрикс — обязательная процедура для любого продакшн-проекта. Однако полный архив файлов сайта может занимать десятки гигабайт: большую часть из них составляют кэш, загруженные пользователями файлы и логи, которые не нужны для восстановления. В этой статье разберём, какие папки исключить из бэкапа и как автоматизировать процесс.
Зачем исключать папки из бэкапа
Полный архив файлов Битрикс-сайта нередко весит несколько гигабайт, хотя размер исходного кода не превышает нескольких сотен мегабайт. Разница — это кэш, временные файлы и загруженные медиафайлы. Исключение ненужных директорий даёт три преимущества:
- Уменьшение размера архива в 5–20 раз
- Ускорение создания и восстановления бэкапа
- Экономия места на хранилище бэкапов
Список папок для исключения и объяснение
Стандартный список директорий, которые не нужны в бэкапе:
|
1 2 3 4 5 6 7 |
/bitrix/backup *.log /desktop_app /upload /.git /bitrix/cache /bitrix/managed_cache |
Объяснение по каждой папке:
- /bitrix/backup — папка, куда сам Битрикс сохраняет свои бэкапы. Включать её в бэкап бессмысленно: это порождает рекурсию и многократно увеличивает размер архива.
- *.log — лог-файлы. Они полезны для отладки, но не нужны для восстановления работоспособности сайта. Могут весить гигабайты на нагруженных проектах.
- /desktop_app — приложение «1С-Битрикс: Управление сайтом» для десктопа. Это статичный дистрибутив, который при необходимости скачивается заново.
- /upload — загруженные пользователями и редакцией файлы (изображения, документы, видео). Их исключают из файлового бэкапа и делают отдельным бэкапом с другим расписанием, так как они меняются реже кода.
- /.git — репозиторий Git. На продакшн-серверах часто присутствует рабочая копия. Папка
.gitможет занимать сотни мегабайт, но не нужна для восстановления сайта. - /bitrix/cache — файловый кэш Битрикса. Восстанавливается автоматически при первом обращении к страницам. Включать в бэкап не имеет смысла.
- /bitrix/managed_cache — управляемый кэш (HTML-кэш страниц). Аналогично обычному кэшу — пересоздаётся автоматически.
Бэкап через панель Битрикс
Встроенный инструмент резервного копирования находится в разделе Настройки → Инструменты → Резервное копирование. Здесь можно создать архив вручную или настроить расписание. В настройках бэкапа можно указать исключения в поле «Исключить папки». Введите пути относительно корня сайта, по одному на строку.
Однако встроенный инструмент имеет ограничения: он создаёт архив в папке /bitrix/backup, что неудобно для автоматической выгрузки на внешнее хранилище.
Бэкап через командную строку (tar)
Более гибкий способ — использовать утилиту tar напрямую. Пример команды с исключениями:
|
1 2 3 4 5 6 7 8 9 |
tar -czf /backup/site_$(date +%Y%m%d).tar.gz \ --exclude='./bitrix/backup' \ --exclude='./bitrix/cache' \ --exclude='./bitrix/managed_cache' \ --exclude='./upload' \ --exclude='./.git' \ --exclude='./desktop_app' \ --exclude='*.log' \ -C /home/b/b98563a8/site/public_html . |
Для бэкапа базы данных используйте mysqldump:
|
1 |
mysqldump -u DB_USER -pDB_PASS DB_NAME | gzip > /backup/db_$(date +%Y%m%d).sql.gz |
Автоматический бэкап через cron
Добавьте задание в crontab командой crontab -e. Пример: ежедневный бэкап в 3:00 ночи с удалением архивов старше 7 дней:
|
1 2 |
0 3 * * * tar -czf /backup/site_$(date +\%Y\%m\%d).tar.gz --exclude='./bitrix/cache' --exclude='./bitrix/managed_cache' --exclude='./bitrix/backup' --exclude='./upload' --exclude='./.git' --exclude='*.log' -C /home/b/b98563a8/site/public_html . 2>/dev/null 10 3 * * * find /backup -name "site_*.tar.gz" -mtime +7 -delete |
Где хранить бэкапы
Хранить резервные копии на том же сервере — плохая практика. При отказе диска или взломе сервера вы потеряете и сайт, и бэкапы. Используйте одно из следующих решений:
- Выделенный сервер или NAS в другом датацентре
- Облачное хранилище: Яндекс.Облако S3, Amazon S3, Backblaze B2
- SFTP/rsync на удалённый сервер
Для отправки на S3-совместимое хранилище можно использовать утилиту s3cmd или rclone.
Восстановление из бэкапа
Для восстановления файлов из tar-архива выполните:
|
1 |
tar -xzf /backup/site_20250101.tar.gz -C /home/b/b98563a8/site/public_html |
Для восстановления базы данных:
|
1 |
gunzip -c /backup/db_20250101.sql.gz | mysql -u DB_USER -pDB_PASS DB_NAME |
После восстановления очистите кэш Битрикс из панели управления: Настройки → Производительность → Очистить кэш. Правильно настроенный бэкап — это единственная гарантия восстановления сайта при любых нештатных ситуациях.
