Rsync
Store backups on a remote server via rsync over SSH. Ideal for efficient incremental transfers and Unix/Linux servers.
Prerequisites
rsyncmust be installed on both the DBackup server and the remote target- SSH access to the remote server
Docker Users
The default DBackup Docker image includes rsync. If you're running DBackup outside Docker, ensure rsync is installed: which rsync
Configuration
Credential Profile required
Rsync requires a Credential Profile of type SSH_KEY. Create one in Vault → Credentials before saving the destination.
| Field | Description | Default | Required |
|---|---|---|---|
| Name | Friendly name for this destination | - | ✅ |
| Host | Hostname or IP of the remote server | - | ✅ |
| Port | SSH port | 22 | ❌ |
| Login | SSH_KEY credential profile (username + key or password) | - | ✅ |
| Folder | Remote directory for backups. The folder button beside it browses the server from its top once the connection and its login are filled in | - | ✅ |
| Options | Additional rsync flags (e.g. --bwlimit=1000) | - | ❌ |
Authentication Methods (via SSH_KEY profile)
| Auth Type | Description |
|---|---|
password | Username + password via sshpass |
privateKey | SSH private key (PEM format) |
agent | Use the host's SSH agent (keys loaded via ssh-add) |
Setup Guide
- Create an
SSH_KEYcredential profile in Vault → Credentials (guide) - Ensure the target server has rsync and SSH installed
- Create a dedicated user with write access to the backup directory:bash
sudo useradd -m dbackup sudo mkdir -p /backups/dbackup sudo chown dbackup: /backups/dbackup - Go to Connections → Destinations → New destination → Rsync
- Enter Host and pick the credential profile under Login
- Set the Folder in the Location part to the remote directory (e.g.
/backups/dbackup), or pick it with the folder button (📂) - (Optional) Add custom Options for bandwidth limiting or other flags
- Click Test connection to verify the connection
How It Works
- DBackup invokes
rsync -azover SSH to transfer backup files - All transfers are encrypted in transit via SSH
- Custom options are appended to the rsync command
- All credentials (passwords, private keys) are stored AES-256-GCM encrypted in the database
Troubleshooting
rsync: command not found
rsync: command not foundSolution: Install rsync on both servers. On Debian/Ubuntu: apt install rsync. On the remote server, rsync must be in the default PATH.
Connection Refused
ssh: connect to host ... port 22: Connection refusedSolution: Verify the host and port. Ensure SSH is running and the firewall allows the connection.
Permission Denied
rsync: mkstemp failed: Permission denied (13)Solution: Ensure the SSH user has write access to the folder on the remote server.
Listing a Very Large Folder
The server answered with more than 256 MB. Back up its subfolders as separate sources.DBackup lists a folder with one find over SSH before it copies it, and that list may run for 10 minutes and hold up to 256 MB, enough for millions of files.
Solution: Split the folder into several directory sources, one per subfolder. A message that the server did not finish within 600 seconds means the same, often on a server whose find lacks -printf, like macOS, where each file costs a stat of its own.
Bandwidth Limiting
To limit transfer speed, add --bwlimit=1000 (KB/s) in the Options field. Useful for avoiding bandwidth saturation on shared connections.