โ˜๏ธ Offsite Backup with Backblaze B2

This guide explains how to securely sync encrypted Proxmox Backup Server (PBS) backups to Backblaze B2 using rclone. It includes scripting, logging, cron automation, and tips to keep costs in check.


1. ๐Ÿ”ง Rclone Setup

Install rclone on your PBS VM:

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

Configure a remote for B2:

rclone config
  • Name: b2pbs
  • Type: Backblaze B2
  • Account ID and Application Key from B2 console

Create a B2 bucket, e.g., packetrealm-backup-bucket.

Test:

rclone lsf b2pbs:packetrealm-backup-bucket

2. ๐Ÿ” PBS Backups Are Already Encrypted

If you’ve enabled encryption in PBS:

  • Files on disk and in B2 remain encrypted
  • No need to encrypt again with rclone

3. ๐Ÿ“œ Rclone Sync Script

Save this script as /usr/local/sbin/rclone-b2-sync.sh:

#!/bin/bash
# Author: Hilton D'silva (packetrealm.io)
# Purpose: Sync PBS encrypted backups to Backblaze B2

SRC="/mnt/pbs-data/"
DEST="b2pbs:packetrealm-backup-bucket/proxmox-backup-sync/"
DATE=$(date +%Y-%m-%d)
LOGFILE="/var/log/rclone-b2-${DATE}.log"

rclone copy "$SRC" "$DEST" \
  --transfers=1 \
  --checkers=2 \
  --contimeout=60s \
  --timeout=5m \
  --retries=10 \
  --low-level-retries=10 \
  --bwlimit=3M \
  --log-file="$LOGFILE" \
  --progress \
  --verbose

Make it executable:

chmod +x /usr/local/sbin/rclone-b2-sync.sh

4. โฐ Automate with Cron

Edit the crontab:

crontab -e

Add a nightly sync at 2 AM:

0 2 * * * /usr/local/sbin/rclone-b2-sync.sh

5. ๐Ÿงพ Optional: Log Rotation

Create /etc/logrotate.d/rclone-b2-sync:

/var/log/rclone-b2-*.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
    copytruncate
}

Test it:

logrotate -d /etc/logrotate.d/rclone-b2-sync