Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Linux-server Linux-server
28.05.2026

Как копировать бэкапы 1С-Битрикс на Яндекс Диск автоматически

Как копировать бэкапы 1С-Битрикс на Яндекс Диск автоматически

Бэкапы сайта лучше хранить не только на сервере, но и во внешнем хранилище. Если сервер сломается, будет удалён или окажется недоступен, локальные резервные копии уже не помогут.

В этой статье покажу практический вариант: резервные копии сайта на 1С-Битрикс создаются стандартными средствами Битрикса, а затем автоматически копируются на Яндекс Диск с помощью rclone.

Исходная задача

На сервере уже настроено создание резервных копий средствами 1С-Битрикс. Обычно такие бэкапы лежат в папке:

/var/www/ваш_сайт/bitrix/backup/

В моём случае Битрикс хранит локально три последних бэкапа: при создании нового архива самый старый автоматически удаляется.

Но хранить только три копии на том же сервере — не самый надёжный вариант. Поэтому я хочу дополнительно копировать бэкапы на Яндекс Диск и хранить там, например, шесть последних архивов.

Почему не стоит использовать rclone sync

На первый взгляд можно использовать команду rclone sync. Она синхронизирует локальную папку с удалённой.

Но в этом случае есть проблема: если Битрикс удалит старый бэкап локально, rclone sync удалит его и на Яндекс Диске.

А задача другая: на сервере пусть остаются три последних бэкапа, а на Яндекс Диске — шесть последних.

Поэтому лучше использовать:

rclone copy

Эта команда копирует новые файлы, но не удаляет старые на удалённом хранилище.

Подключение Яндекс Диска через rclone

Для начала устанавливаем rclone:

curl https://rclone.org/install.sh | sudo bash

В своих проектах я использую серверную инфраструктуру Timeweb

Хостинг, VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

Проверяем версию:

rclone version

Далее запускаем настройку:

rclone config

Создаём новое подключение:

n) New remote
name> yandex
Storage> Yandex Disk

Если сервер без браузера, на вопрос:

Use auto config?

отвечаем:

n

Затем rclone предложит выполнить авторизацию на компьютере, где есть браузер:

rclone authorize "yandex"

После авторизации нужно скопировать полученный JSON-токен и вставить его обратно в консоль сервера.

Проверить подключение можно командой:

rclone lsd yandex:

Если всё настроено правильно, команда покажет папки на Яндекс Диске.

Структура папок на Яндекс Диске

Я буду хранить бэкапы в такой структуре:

/backup/ваш_сайт/
    bitrix/
    server/

В папке bitrix будут лежать архивы, созданные стандартным механизмом резервного копирования 1С-Битрикс.

В папке server будет храниться отдельный архив с важными конфигами сервера: nginx, PHP, SSL-сертификаты и cron.

Скрипт копирования бэкапов на Яндекс Диск

Создадим файл скрипта:

nano /root/backup_to_yandex.sh

Вставляем в него код:

#!/bin/bash

DATE=$(date +"%Y-%m-%d_%H-%M")

LOCAL_BITRIX_BACKUP="/var/www/ваш_сайт/bitrix/backup"
REMOTE_BITRIX_BACKUP="yandex:/backup/ваш_сайт/bitrix"

LOCAL_SERVER_BACKUP="/tmp/server_backup_$DATE.tar.gz"
REMOTE_SERVER_BACKUP="yandex:/backup/ваш_сайт/server"

rclone copy "$LOCAL_BITRIX_BACKUP" "$REMOTE_BITRIX_BACKUP" \
    --ignore-existing \
    --exclude "*.tmp" \
    --exclude "*.part" \
    --bwlimit 8M \
    --log-file=/var/log/rclone-bitrix.log \
    --log-level INFO

BACKUP_LIST=$(rclone lsf "$REMOTE_BITRIX_BACKUP" --files-only --format "tp" | sort)
COUNT=$(echo "$BACKUP_LIST" | grep -c .)

if [ "$COUNT" -gt 6 ]; then
    DELETE_COUNT=$((COUNT - 6))

    echo "$BACKUP_LIST" | head -n "$DELETE_COUNT" | while read -r line; do
        FILE=$(echo "$line" | awk '{print $2}')
        rclone deletefile "$REMOTE_BITRIX_BACKUP/$FILE"
    done
fi

tar -czf "$LOCAL_SERVER_BACKUP" \
    /etc/nginx \
    /etc/php \
    /etc/letsencrypt \
    /var/spool/cron

rclone copy "$LOCAL_SERVER_BACKUP" "$REMOTE_SERVER_BACKUP" \
    --bwlimit 8M \
    --log-file=/var/log/rclone-server.log \
    --log-level INFO

SERVER_BACKUPS=$(rclone lsf "$REMOTE_SERVER_BACKUP" --files-only | sort)
SERVER_COUNT=$(echo "$SERVER_BACKUPS" | grep -c .)

if [ "$SERVER_COUNT" -gt 1 ]; then
    DELETE_SERVER_COUNT=$((SERVER_COUNT - 1))

    echo "$SERVER_BACKUPS" | head -n "$DELETE_SERVER_COUNT" | while read -r line; do
        rclone deletefile "$REMOTE_SERVER_BACKUP/$line"
    done
fi

rm -f "$LOCAL_SERVER_BACKUP"

Что делает этот скрипт

Скрипт выполняет несколько действий.

  • Копирует новые бэкапы Битрикса из /var/www/ваш_сайт/bitrix/backup/ на Яндекс Диск.
  • Не перезаписывает уже загруженные архивы благодаря параметру --ignore-existing.
  • Исключает временные файлы *.tmp и *.part.
  • Оставляет на Яндекс Диске только шесть последних бэкапов Битрикса.
  • Создаёт отдельный архив с конфигами сервера.
  • Хранит на Яндекс Диске только одну последнюю копию серверных конфигов.

Делаем скрипт исполняемым

После создания файла нужно выдать права на выполнение:

chmod +x /root/backup_to_yandex.sh

Проверяем работу вручную

Перед добавлением в cron обязательно запускаем скрипт вручную:

bash /root/backup_to_yandex.sh

Проверяем, появились ли файлы на Яндекс Диске:

rclone ls yandex:/backup/nikovit.ru/

Если файлы отображаются, значит копирование работает.

Добавляем запуск в cron

Открываем cron:

crontab -e

Например, можно запускать копирование каждый день в 5 утра:

0 5 * * * /root/backup_to_yandex.sh >> /var/log/backup_yandex.log 2>&1

Важно запускать скрипт после того, как Битрикс уже успел создать свежий бэкап. Если резервное копирование в Битриксе выполняется ночью, то копирование на Яндекс Диск можно поставить на более позднее время.

Почему хранить больше бэкапов на Яндекс Диске удобно

На сервере нет смысла держать слишком много архивов: они занимают место и могут быстро заполнить диск.

Но на внешнем хранилище можно оставить больше копий. Например:

  • на сервере — 3 последних бэкапа;
  • на Яндекс Диске — 6 последних бэкапов;
  • отдельно — последняя копия конфигов nginx, PHP, SSL и cron.

Такая схема защищает от ситуации, когда проблема на сайте обнаружилась не сразу. Например, сайт сломался несколько дней назад, а локальные три бэкапа уже успели обновиться. В этом случае дополнительные копии на Яндекс Диске могут сильно помочь.

Что важно помнить

Бэкапы нужно не только создавать, но и периодически проверять. Архив может оказаться повреждённым, неполным или бесполезным, если его ни разу не пробовали восстановить.

Поэтому хотя бы иногда стоит:

  • скачать архив с Яндекс Диска;
  • проверить, что он нормально распаковывается;
  • убедиться, что внутри есть файлы сайта и дамп базы данных;
  • проверить восстановление на тестовом сервере.

Вывод

Если Битрикс уже сам создаёт резервные копии, не обязательно писать отдельный сложный скрипт для архивации сайта. Достаточно настроить автоматическое копирование готовых архивов во внешнее хранилище.

В моём случае удобная схема выглядит так:

  • 1С-Битрикс создаёт локальные бэкапы;
  • на сервере хранятся три последних архива;
  • rclone копирует новые архивы на Яндекс Диск;
  • на Яндекс Диске хранятся шесть последних бэкапов;
  • отдельно сохраняется одна копия конфигов сервера.

Это простой и практичный вариант резервного копирования для сайта на 1С-Битрикс. Он не требует сложной инфраструктуры, но сильно повышает шансы быстро восстановить сайт при проблемах с сервером.


Не получается самостоятельно?

Помогу разобраться с настройкой, исправить ошибки и реализовать решение под ваш проект.

Аудит сайта

Аудит сайта — комплексная проверка технического состояния, SEO-настроек и удобства использования сайта. Позволяет выявить ошибки, которые мешают сайту привлекать клиентов и занимать высокие позиции в поисковых системах. Подробный отчёт с рекомендациями по улучшению.
Подробнее
31 просмотров
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

Без инфоцыганства и мотивационных цитат — только практика, кейсы и рабочие решения для бизнеса и веб-разработки.

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться