Skip to content

Rsync

Store backups on a remote server via rsync over SSH. Ideal for efficient incremental transfers and Unix/Linux servers.

Prerequisites

  • rsync must 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 Settings → Vault → Credentials before saving the destination.

FieldDescriptionDefaultRequired
NameFriendly name for this destination-
HostHostname or IP of the remote server-
PortSSH port22
Primary CredentialSSH_KEY credential profile (username + key or password)-
Path PrefixRemote directory for backups-
OptionsAdditional rsync flags (e.g. --bwlimit=1000)-

Authentication Methods (via SSH_KEY profile)

Auth TypeDescription
passwordUsername + password via sshpass
privateKeySSH private key (PEM format)
agentUse the host's SSH agent (keys loaded via ssh-add)

Setup Guide

  1. Create an SSH_KEY credential profile in Settings → Vault → Credentials (guide)
  2. Ensure the target server has rsync and SSH installed
  3. 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
  4. Go to DestinationsAdd DestinationRsync
  5. Enter Host and select the credential profile in the Primary Credential picker
  6. Set Path Prefix to the remote directory (e.g. /backups/dbackup)
  7. (Optional) Add custom Options for bandwidth limiting or other flags
  8. Click Test to verify the connection

How It Works

  • DBackup invokes rsync -az over 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 found

Solution: 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 refused

Solution: 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 Path Prefix directory on the remote server.

Bandwidth Limiting

To limit transfer speed, add --bwlimit=1000 (KB/s) in the Options field. Useful for avoiding bandwidth saturation on shared connections.

Next Steps

Released under the GNU General Public License. | Privacy · Legal Notice