rclone: резервные копии VPS в облачные хранилища

Облако и DevOps · 19.04.2026
rclone: резервные копии VPS в облачные хранилища

rclone: облачные бэкапы для VPS

rclone — универсальный инструмент для работы с облачными хранилищами: поддерживает более 40 провайдеров, включая любой S3-совместимый сервис, Google Drive, Backblaze B2, Dropbox, OneDrive и другие.

Установка rclone

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

Настройка удалённого хранилища

# Интерактивная настройка
rclone config

# Выбрать: n (New remote)
# Имя: backblaze (или любое)
# Тип: b2 (Backblaze B2) / s3 (AWS/MinIO) / drive (Google Drive)

Пример: Backblaze B2

[backblaze]
type = b2
account = YOUR_ACCOUNT_ID
key = YOUR_APP_KEY

Пример: S3-совместимый (MinIO/Hetzner)

[hetzner-s3]
type = s3
provider = Other
access_key_id = YOUR_KEY
secret_access_key = YOUR_SECRET
endpoint = https://fsn1.your-objectstorage.com
region = eu-central

Шифрование бэкапов

# Создать зашифрованный remote
rclone config
# Тип: crypt
# Remote: backblaze:my-bucket/encrypted
# Пароль: задать надёжный пароль

[backblaze-crypt]
type = crypt
remote = backblaze:my-bucket/encrypted
filename_encryption = standard
directory_name_encryption = true
password = ENCRYPTED_PASSWORD

Команды синхронизации

# Копировать файлы (не удалять в облаке)
rclone copy /var/backups backblaze-crypt:vps-backups

# Синхронизировать (удалять лишнее в облаке)
rclone sync /var/backups backblaze-crypt:vps-backups

# Проверить содержимое
rclone ls backblaze-crypt:vps-backups

# Сухой прогон (без изменений)
rclone sync /var/backups backblaze:my-bucket --dry-run -v

Скрипт автобэкапа с cron

#!/bin/bash
# /usr/local/bin/vps-backup.sh

DATE=$(date +%Y-%m-%d)
BACKUP_DIR=/tmp/backup-$DATE
LOG=/var/log/rclone-backup.log

mkdir -p $BACKUP_DIR

# Дамп MySQL
mysqldump --all-databases -u root -p'PASSWORD' | gzip > $BACKUP_DIR/mysql-all.sql.gz

# Файлы сайтов
tar -czf $BACKUP_DIR/www.tar.gz /var/www/html

# Загрузка в облако
rclone copy $BACKUP_DIR backblaze-crypt:vps-backups/$DATE >> $LOG 2>&1

# Очистить локальную копию
rm -rf $BACKUP_DIR

# Удалить бэкапы старше 30 дней
rclone delete backblaze-crypt:vps-backups \
  --min-age 30d --rmdirs >> $LOG 2>&1

echo "[$DATE] Backup done" >> $LOG
# Crontab — запуск каждую ночь в 3:00
crontab -e
0 3 * * * /usr/local/bin/vps-backup.sh

Мониторинг и уведомления

# Отправить уведомление при ошибке
rclone copy /var/backups backblaze:bucket || \
  curl -s "https://api.telegram.org/bot$TOKEN/sendMessage" \
    -d "chat_id=$CHAT_ID&text=Backup+FAILED!"
Совет: Используйте флаг --transfers=8 --checkers=16 для параллельной загрузки нескольких файлов — значительно ускоряет бэкап при большом количестве мелких файлов.
← Назад в базу знаний Задать вопрос поддержке