Команды резервного копирования 
Команды для управления резервными копиями сайта средствами Битрикса.
backup:create 
Создает резервную копию сайта средствами Битрикса (файлы + база данных).
Синтаксис 
php bitrix.php backup:create [опции]Основные опции 
--name=<имя>- имя архива бэкапа (без расширения)--skip-kernel- не включать ядро Битрикса в бэкап--skip-public- не включать публичную часть в бэкап--skip-db- не включать базу данных в бэкап--no-compression- отключить сжатие архива
Исключения из базы данных 
--skip-stat- исключить статистику (таблицы b_stat*)--skip-search- исключить поисковый индекс (таблицы b_search_*)--skip-log- исключить журнал событий (таблица b_event_log)
Исключения файлов 
--exclude-dir=<путь>- исключить директорию из бэкапа (можно указать несколько раз)--exclude-file=<путь>- исключить файл из бэкапа (можно указать несколько раз)--exclude-mask=<маска>- исключить по маске, например*.log,tmp/*(можно указать несколько раз)--max-file-size=<КБ>- исключить файлы размером более указанного в КБ (0 - без ограничения, по умолчанию: 0)
Экспертные настройки 
--no-integrity-check- не проверять целостность архива (по умолчанию: проверка включена)--max-exec-time=<секунды>- длительность шага в секундах (по умолчанию: 300)--max-exec-time-sleep=<секунды>- интервал между шагами в секундах (по умолчанию: 3)--archive-size-limit=<МБ>- максимальный размер несжатых данных в одной части архива в МБ, допустимые значения 11-2047 (по умолчанию: 100)
Параметры по умолчанию 
- Включено: ядро, публичная часть, база данных, сжатие, проверка целостности
 - Длительность шага: 300 секунд
 - Интервал между шагами: 3 секунды
 - Размер части архива: 100 МБ
 - Макс. размер файла: без ограничений
 - Исключения из БД: не применяются
 
Архив сохраняется в /bitrix/backup/ в формате .tar.gz (или .tar без сжатия).
Примеры использования 
Основные примеры 
# Полный бэкап (файлы + БД) с параметрами по умолчанию
php bitrix.php backup:create
# С указанием имени архива
php bitrix.php backup:create --name=my_backup
# Только база данных
php bitrix.php backup:create --skip-kernel --skip-public
# Только файлы (без БД)
php bitrix.php backup:create --skip-db
# Без ядра Битрикса
php bitrix.php backup:create --skip-kernel
# Без публичной части
php bitrix.php backup:create --skip-publicИсключения из базы данных 
# Исключить статистику из БД (таблицы b_stat*)
php bitrix.php backup:create --skip-stat
# Исключить поисковый индекс (таблицы b_search_*)
php bitrix.php backup:create --skip-search
# Исключить журнал событий (таблица b_event_log)
php bitrix.php backup:create --skip-log
# Комплексное исключение из БД
php bitrix.php backup:create --skip-stat --skip-search --skip-logИсключения файлов и директорий 
# С исключением директорий
php bitrix.php backup:create --exclude-dir=/upload/tmp --exclude-dir=/bitrix/cache
# С исключением файлов
php bitrix.php backup:create --exclude-file=/bitrix/.settings.php
# С исключением по маске
php bitrix.php backup:create --exclude-mask="*.log" --exclude-mask="*.tmp"
# Исключить большие файлы (более 10 МБ)
php bitrix.php backup:create --max-file-size=10240Экспертные настройки 
# Настройка длительности шагов (по умолчанию 300 сек)
php bitrix.php backup:create --max-exec-time=600
# Настройка интервала между шагами (по умолчанию 3 сек)
php bitrix.php backup:create --max-exec-time-sleep=5
# Настройка размера части архива (по умолчанию 100 МБ, допустимо 11-2047)
php bitrix.php backup:create --archive-size-limit=500
# Отключить проверку целостности архива (по умолчанию включена)
php bitrix.php backup:create --no-integrity-check
# Комплексная настройка производительности
php bitrix.php backup:create \
  --max-exec-time=600 \
  --max-exec-time-sleep=5 \
  --archive-size-limit=500Комплексные примеры 
# Исключить кеш и временные файлы
php bitrix.php backup:create \
  --exclude-dir=/bitrix/cache \
  --exclude-dir=/bitrix/managed_cache \
  --exclude-dir=/bitrix/stack_cache \
  --exclude-dir=/upload/tmp
# Исключить логи и временные файлы по маске
php bitrix.php backup:create \
  --exclude-mask="*.log" \
  --exclude-mask="*.tmp" \
  --exclude-mask=".DS_Store"
# Чистый бэкап без статистики, кеша и логов
php bitrix.php backup:create \
  --name=production_backup \
  --skip-stat \
  --skip-search \
  --skip-log \
  --exclude-dir=/bitrix/cache \
  --exclude-dir=/upload/tmp \
  --exclude-mask="*.log"
# Быстрый бэкап с минимальными данными
php bitrix.php backup:create \
  --name=minimal_backup \
  --skip-stat \
  --skip-search \
  --skip-log \
  --max-file-size=5120 \
  --exclude-dir=/upload \
  --no-integrity-checkСтратегии резервного копирования 
Ежедневный полный бэкап 
#!/bin/bash
# Создание полного ежедневного бэкапа
cd /var/www/bitrix
BACKUP_NAME="daily_$(date +%Y%m%d)"
php bitrix.php backup:create \
  --name="$BACKUP_NAME" \
  --skip-stat \
  --skip-search \
  --exclude-dir=/bitrix/cache \
  --exclude-dir=/upload/tmp
echo "Бэкап создан: $BACKUP_NAME"Еженедельный полный бэкап 
#!/bin/bash
# Полный еженедельный бэкап (все включено)
cd /var/www/bitrix
BACKUP_NAME="weekly_full_$(date +%Y%m%d)"
php bitrix.php backup:create \
  --name="$BACKUP_NAME" \
  --max-exec-time=600 \
  --archive-size-limit=500
echo "Полный еженедельный бэкап создан: $BACKUP_NAME"Только база данных (часто) 
#!/bin/bash
# Частый бэкап только БД
cd /var/www/bitrix
BACKUP_NAME="db_only_$(date +%Y%m%d_%H%M)"
php bitrix.php backup:create \
  --name="$BACKUP_NAME" \
  --skip-kernel \
  --skip-public \
  --skip-stat \
  --skip-search
echo "Бэкап БД создан: $BACKUP_NAME"Бэкап перед обновлением 
#!/bin/bash
# Полный бэкап перед обновлением системы
cd /var/www/bitrix
BACKUP_NAME="pre_update_$(date +%Y%m%d_%H%M%S)"
echo "Создание резервной копии перед обновлением..."
php bitrix.php backup:create \
  --name="$BACKUP_NAME" \
  -v
if [ $? -eq 0 ]; then
    echo "✓ Резервная копия создана успешно"
    echo "Можно приступать к обновлению"
else
    echo "✗ Ошибка создания резервной копии"
    echo "Обновление отменено"
    exit 1
fiДифференцированный бэкап 
#!/bin/bash
# Разные типы бэкапов в разные дни недели
cd /var/www/bitrix
DAY_OF_WEEK=$(date +%u)
case $DAY_OF_WEEK in
    1)  # Понедельник - полный бэкап
        php bitrix.php backup:create --name="full_$(date +%Y%m%d)"
        ;;
    3|5)  # Среда и пятница - БД + важные файлы
        php bitrix.php backup:create \
            --name="partial_$(date +%Y%m%d)" \
            --skip-stat --skip-search \
            --exclude-dir=/upload
        ;;
    *)  # Остальные дни - только БД
        php bitrix.php backup:create \
            --name="db_$(date +%Y%m%d)" \
            --skip-kernel --skip-public
        ;;
esacАвтоматизация в cron 
Базовая настройка 
# Полный бэкап каждый день в 2:00
0 2 * * * cd /var/www/bitrix && php bitrix.php backup:create --name=daily_backup
# Бэкап только базы данных каждые 6 часов
0 */6 * * * cd /var/www/bitrix && php bitrix.php backup:create --skip-kernel --skip-public --name=db_backup
# Чистый бэкап с исключением статистики, индекса и логов из БД
0 3 * * * cd /var/www/bitrix && php bitrix.php backup:create --name=clean_backup --skip-stat --skip-search --skip-log --exclude-dir=/bitrix/cache --exclude-dir=/upload/tmp --exclude-mask="*.log"
# Быстрый минимальный бэкап для тестирования
0 4 * * * cd /var/www/bitrix && php bitrix.php backup:create --name=test_backup --skip-stat --skip-search --max-file-size=5120 --no-integrity-check
# Автоматическая очистка старых бэкапов (каждый день в 5:00)
0 5 * * * cd /var/www/bitrix && php bitrix.php backup:clean --days=7 --keep=3 --forceПродвинутые сценарии 
#!/bin/bash
# Интеллектуальный скрипт бэкапа с ротацией
cd /var/www/bitrix
BACKUP_NAME="auto_$(date +%Y%m%d_%H%M)"
# Создать бэкап
echo "Начало создания бэкапа: $(date)"
php bitrix.php backup:create --name="$BACKUP_NAME" --skip-stat --skip-search -v
if [ $? -eq 0 ]; then
    echo "✓ Бэкап создан успешно"
    
    # Удалить старые бэкапы (старше 7 дней, оставить минимум 3)
    php bitrix.php backup:clean --pattern="auto_*" --days=7 --keep=3 --force
    echo "Старые бэкапы удалены"
    
    # Отправить уведомление
    echo "Бэкап $BACKUP_NAME создан успешно" | \
        mail -s "Backup Success" admin@example.com
else
    echo "✗ Ошибка создания бэкапа"
    echo "Ошибка при создании бэкапа $BACKUP_NAME" | \
        mail -s "Backup Failed" admin@example.com
    exit 1
fiУправление бэкапами 
Просмотр списка бэкапов 
#!/bin/bash
# Простой просмотр списка бэкапов
cd /var/www/bitrix
php bitrix.php backup:list
# Показать только последние 5
php bitrix.php backup:list --limit=5
# Отсортировать по размеру
php bitrix.php backup:list --sort=sizeПроверка наличия бэкапов 
#!/bin/bash
# Проверка и мониторинг бэкапов с использованием CLI
cd /var/www/bitrix
# Получить количество бэкапов
BACKUP_COUNT=$(php bitrix.php backup:list --limit=0 2>/dev/null | grep -c ".tar")
echo "Количество бэкапов: $BACKUP_COUNT"
if [ $BACKUP_COUNT -eq 0 ]; then
    echo "⚠ ВНИМАНИЕ: Резервные копии отсутствуют!" | \
        mail -s "No Backups Found" admin@example.com
else
    echo "✓ Резервные копии найдены: $BACKUP_COUNT"
fiРотация бэкапов 
#!/bin/bash
# Продвинутая ротация бэкапов с использованием CLI
cd /var/www/bitrix
# Сохранить:
# - Все бэкапы за последнюю неделю
# - Еженедельные бэкапы за последний месяц
# - Ежемесячные бэкапы за последний год
# Удалить ежедневные бэкапы старше 7 дней
php bitrix.php backup:clean --pattern="daily_*" --days=7 --force
# Удалить еженедельные бэкапы старше 30 дней
php bitrix.php backup:clean --pattern="weekly_*" --days=30 --force
# Удалить месячные бэкапы старше 365 дней
php bitrix.php backup:clean --pattern="monthly_*" --days=365 --force
echo "Ротация бэкапов завершена"Копирование на удаленный сервер 
#!/bin/bash
# Копирование бэкапов на удаленный сервер
BACKUP_DIR="/var/www/bitrix/backup"
REMOTE_SERVER="backup@backup-server.com"
REMOTE_DIR="/backups/bitrix"
# Найти бэкапы за сегодня
TODAY=$(date +%Y%m%d)
for backup in "$BACKUP_DIR"/*$TODAY*.tar.gz; do
    if [ -f "$backup" ]; then
        echo "Копирование: $(basename $backup)"
        rsync -avz --progress "$backup" "$REMOTE_SERVER:$REMOTE_DIR/"
        
        if [ $? -eq 0 ]; then
            echo "✓ $(basename $backup) скопирован"
        else
            echo "✗ Ошибка копирования $(basename $backup)"
        fi
    fi
doneЗагрузка в облачное хранилище 
#!/bin/bash
# Загрузка бэкапов в S3-совместимое хранилище
BACKUP_DIR="/var/www/bitrix/backup"
S3_BUCKET="s3://my-bitrix-backups"
# Найти последний бэкап
LATEST_BACKUP=$(ls -t "$BACKUP_DIR"/*.tar.gz | head -1)
if [ -n "$LATEST_BACKUP" ]; then
    echo "Загрузка в облако: $(basename $LATEST_BACKUP)"
    
    # Использовать aws-cli или s3cmd
    aws s3 cp "$LATEST_BACKUP" "$S3_BUCKET/" --storage-class STANDARD_IA
    
    if [ $? -eq 0 ]; then
        echo "✓ Бэкап загружен в облако"
    else
        echo "✗ Ошибка загрузки в облако"
    fi
fibackup:list 
Показывает список всех созданных резервных копий.
Синтаксис 
php bitrix.php backup:list [опции]Опции 
--sort=<тип>- сортировка списка:date- по дате создания (по умолчанию, новые первыми)size- по размеру файла (большие первыми)name- по имени файла (алфавитный порядок)
--limit=<число>- ограничить количество отображаемых бэкапов (0 - без ограничений, по умолчанию: 0)
Примеры использования 
# Показать все бэкапы
php bitrix.php backup:list
# Показать 10 последних бэкапов
php bitrix.php backup:list --limit=10
# Отсортировать по размеру
php bitrix.php backup:list --sort=size
# Отсортировать по имени
php bitrix.php backup:list --sort=name
# Показать 5 самых больших бэкапов
php bitrix.php backup:list --sort=size --limit=5Вывод команды 
Команда отображает таблицу со следующей информацией:
- Имя файла резервной копии
 - Размер файла
 - Дата и время создания
 - Общий размер всех бэкапов
 
backup:restore 
Восстанавливает сайт из резервной копии.
⚠️ ВНИМАНИЕ: Эта операция удалит текущие данные! Используйте с осторожностью.
Синтаксис 
php bitrix.php backup:restore <архив> [опции]Аргументы 
<архив>- имя файла архива для восстановления (обязательный параметр)
Опции 
--skip-db- не восстанавливать базу данных (только файлы)--skip-files- не восстанавливать файлы (только БД)--force,-f- пропустить запрос подтверждения (использовать с осторожностью)--max-exec-time=<секунды>- длительность шага в секундах (по умолчанию: 300)
Примеры использования 
# Полное восстановление (файлы + БД) с подтверждением
php bitrix.php backup:restore backup_20241028.tar.gz
# Восстановить только файлы (без БД)
php bitrix.php backup:restore backup_20241028.tar.gz --skip-db
# Восстановить только базу данных (без файлов)
php bitrix.php backup:restore backup_20241028.tar.gz --skip-files
# Восстановление без подтверждения (для автоматизации)
php bitrix.php backup:restore backup_20241028.tar.gz --force
# С увеличенным временем выполнения
php bitrix.php backup:restore backup_20241028.tar.gz --max-exec-time=600Процесс восстановления 
- Проверка существования архива
 - Отображение информации об архиве (размер, дата создания)
 - Запрос подтверждения (если не указан 
--force) - Извлечение файлов из архива (если не указан 
--skip-files) - Восстановление базы данных (если не указан 
--skip-db) - Вывод рекомендаций по пост-обработке
 
Рекомендации после восстановления 
После успешного восстановления рекомендуется:
- Очистить кеш: 
php bitrix.php cache:clear - Проверить работу сайта
 - Проверить права доступа к файлам
 
Скрипт для автоматического восстановления 
#!/bin/bash
# Автоматическое восстановление из последнего бэкапа
cd /var/www/bitrix
# Найти последний бэкап
LATEST_BACKUP=$(ls -t bitrix/backup/*.tar.gz 2>/dev/null | head -1)
if [ -z "$LATEST_BACKUP" ]; then
    echo "✗ Бэкапы не найдены"
    exit 1
fi
echo "Восстановление из: $(basename $LATEST_BACKUP)"
# Восстановить
php bitrix.php backup:restore "$(basename $LATEST_BACKUP)" --force
if [ $? -eq 0 ]; then
    echo "✓ Восстановление завершено"
    
    # Очистить кеш
    php bitrix.php cache:clear
    
    echo "✓ Кеш очищен"
else
    echo "✗ Ошибка восстановления"
    exit 1
fibackup:clean 
Удаляет старые резервные копии по заданным критериям (ротация бэкапов).
Синтаксис 
php bitrix.php backup:clean [опции]Опции 
--days=<дни>,-d- удалить бэкапы старше указанного количества дней--keep=<число>,-k- оставить указанное количество последних бэкапов--pattern=<шаблон>,-p- шаблон имени файла (например:daily_*,weekly_*)--force,-f- пропустить запрос подтверждения--dry-run- показать что будет удалено, но не удалять (предварительный просмотр)
Примеры использования 
# Удалить бэкапы старше 7 дней
php bitrix.php backup:clean --days=7
# Оставить только 5 последних бэкапов
php bitrix.php backup:clean --keep=5
# Удалить ежедневные бэкапы старше 7 дней
php bitrix.php backup:clean --pattern="daily_*" --days=7
# Предварительный просмотр (без удаления)
php bitrix.php backup:clean --days=30 --dry-run
# Оставить 10 последних бэкапов без подтверждения
php bitrix.php backup:clean --keep=10 --force
# Комбинация: оставить минимум 3, удалить старше 30 дней
php bitrix.php backup:clean --keep=3 --days=30
# Удалить старые еженедельные бэкапы
php bitrix.php backup:clean --pattern="weekly_*" --days=30Стратегии ротации 
Простая ротация по времени 
#!/bin/bash
# Удалить бэкапы старше 7 дней, оставить минимум 3
cd /var/www/bitrix
php bitrix.php backup:clean --days=7 --keep=3 --forceДифференцированная ротация 
#!/bin/bash
# Разные правила для разных типов бэкапов
cd /var/www/bitrix
# Ежедневные - хранить 7 дней
php bitrix.php backup:clean --pattern="daily_*" --days=7 --force
# Еженедельные - хранить 30 дней
php bitrix.php backup:clean --pattern="weekly_*" --days=30 --force
# Месячные - хранить 365 дней
php bitrix.php backup:clean --pattern="monthly_*" --days=365 --force
echo "Ротация бэкапов завершена"Ротация с контролем места 
#!/bin/bash
# Удалить старые бэкапы если мало места
cd /var/www/bitrix
# Проверить свободное место (в процентах)
DISK_USAGE=$(df /var/www | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $DISK_USAGE -gt 80 ]; then
    echo "Диск заполнен на ${DISK_USAGE}%, выполняется очистка старых бэкапов"
    
    # Оставить только 3 последних бэкапа
    php bitrix.php backup:clean --keep=3 --force
    
    echo "Очистка завершена"
fiВосстановление из бэкапа 
Через CLI (рекомендуется) 
# 1. Посмотреть доступные бэкапы
php bitrix.php backup:list
# 2. Восстановить нужный бэкап
php bitrix.php backup:restore backup_20241028.tar.gz
# 3. Очистить кеш после восстановления
php bitrix.php cache:clearЧерез админ-панель 
- Перейдите в раздел Настройки → Инструменты → Резервное копирование
 - Выберите архив для восстановления
 - Настройте параметры восстановления
 - Запустите процесс восстановления
 
Troubleshooting 
Бэкап не создается 
Проблема: Ошибка при создании бэкапа
Решения:
- Проверьте права доступа к 
/bitrix/backup/:ls -la /bitrix/backup/ - Проверьте свободное место на диске: 
df -h - Увеличьте 
max_execution_timeв php.ini - Увеличьте 
memory_limitв php.ini - Проверьте логи PHP
 
Недостаточно места на диске 
Проблема: No space left on device
Решения:
- Освободите место: удалите старые бэкапы
 - Используйте исключения для уменьшения размера
 - Используйте 
--max-file-sizeдля исключения больших файлов - Переместите бэкапы на другой диск
 
Бэкап занимает слишком много времени 
Проблема: Создание бэкапа длится часами
Решения:
- Используйте 
--skip-stat --skip-searchдля ускорения - Исключите большие директории: 
--exclude-dir=/upload - Увеличьте 
--max-exec-time - Уменьшите 
--archive-size-limit - Запускайте в периоды низкой нагрузки
 
Ошибка целостности архива 
Проблема: Integrity check failed
Решения:
- Пересоздайте бэкап
 - Проверьте диск на ошибки
 - Используйте 
--no-integrity-check(не рекомендуется) - Проверьте свободное место во время создания
 
Полезные советы 
💡 Автоматизируйте - настройте регулярное создание бэкапов через cron
💡 Используйте backup:list - регулярно проверяйте список созданных бэкапов
💡 Тестируйте восстановление - используйте backup:restore на тестовом окружении
💡 Используйте backup:clean - настройте автоматическую ротацию старых бэкапов
💡 Храните off-site - копируйте бэкапы на удаленный сервер или в облако
💡 Используйте --dry-run - проверяйте что будет удалено перед очисткой бэкапов
💡 Мониторьте - отслеживайте успешность создания бэкапов и их количество
💡 Оптимизируйте - исключайте ненужные данные для уменьшения размера и времени
💡 Документируйте - ведите журнал бэкапов и процедур восстановления
💡 Используйте сжатие - сжатие значительно уменьшает размер архива
💡 Разделяйте - используйте разные стратегии для разных типов данных (daily, weekly, monthly)
💡 Комбинируйте критерии - используйте --days и --keep вместе для гибкой ротации
Смотрите также 
- Команды базы данных - информация о БД для планирования бэкапов
 - Примеры cron - автоматизация создания бэкапов
 - Официальная документация Битрикс по резервному копированию