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 для параллельной загрузки нескольких файлов — значительно ускоряет бэкап при большом количестве мелких файлов.