1 Backup
Anton Nesterov edited this page 2026-02-26 16:23:25 +01:00

Backup

You can run a replica server to maintain a live, synchronized copy of your data for backup purposes - see Replication for setup instructions.

rsync Snapshots

For additional backup redundancy, use rsync with --link-dest to create space-efficient snapshots of your data directory:

# Create a backup script: /usr/local/bin/vski-backup.sh
#!/bin/bash

DATA_DIR="/var/lib/vski/data"
BACKUP_DIR="/var/lib/vski/backups"
DATE=$(date +%Y-%m-%d_%H%M%S)
LATEST="$BACKUP_DIR/latest"

mkdir -p "$BACKUP_DIR"

# Create incremental snapshot with hard links for unchanged files
rsync -av --delete \
  --link-dest="$LATEST" \
  "$DATA_DIR/" \
  "$BACKUP_DIR/$DATE/"

# Update latest symlink
ln -sfn "$BACKUP_DIR/$DATE" "$LATEST"

# Remove backups older than 30 days
find "$BACKUP_DIR" -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;

echo "Backup completed: $BACKUP_DIR/$DATE"
# Add to crontab for hourly snapshots
crontab -e

# Run every hour
0 * * * * /usr/local/bin/vski-backup.sh >> /var/log/vski-backup.log 2>&1

This approach creates full backup directories but uses hard links for unchanged files, so each snapshot appears complete while only storing differences.