rdiff-backup is a simple backup tool which can be used locally and remotely, on Linux and Windows, and even cross-platform between both. Users have reported using it successfully on FreeBSD and MacOS X.
Beside its ease of use, one of the main advantages of rdiff-backup is that it does use the same efficient protocol as rsync to transfer and store data. Because rdiff-backup only stores the differences from the previous backup to the next one (a so called reverse incremental backup), the latest backup is always a full backup, making it easiest and fastest to restore the most recent backups, combining the space advantages of incremental backups while keeping the speed advantages of full backups (at least for recent ones).
In older Linux distributions the rdiff-backup versions are of the 1.x series, which is not recommended for new installs anymore. Follow the instructions below to install the latest 2.x release of rdiff-backup.
|rdiff-backup 1.x and 2.x aren’t compatible and can’t be mixed in server/client mode! See how to migrate side-by-side.|
1.1. Ubuntu Focal or Debian Bullseye or newer (has 2.0)
sudo apt install rdiff-backup
1.2. Ubuntu backports for older versions (needs a backported 2.0)
sudo apt install software-properties-common sudo add-apt-repository ppa:rdiff-backup/rdiff-backup-backports sudo apt update sudo apt install rdiff-backup
1.3. CentOS and RHEL 7 (from EPEL)
sudo yum install epel-release sudo yum install rdiff-backup sudo yum install py3libacl pyxattr
|the last line is optional to get ACLs and EAs support.|
1.4. CentOS, AlmaLinux, Rocky Linux and RHEL 8 (from EPEL)
sudo dnf install epel-release sudo dnf --enablerepo=PowerTools install rdiff-backup
you can add the option
This does not enable updates for
1.5. Fedora 34+
sudo dnf install rdiff-backup
|for earlier versions, see the COPR instructions below.|
1.6. Debian and derivatives, Raspbian, etc. (from PyPi)
sudo apt install python3-pip python3-setuptools python3-pylibacl python3-pyxattr sudo pip3 install rdiff-backup
If your platform is not i386 or amd64, e.g.
ARM/MIPS/etc, you may need the build dependencies
1.7. CentOS and RHEL 6 (from PyPi)
sudo yum install centos-release-scl sudo yum install rh-python36 gcc libacl-devel scl enable rh-python36 bash sudo pip install rdiff-backup pyxattr pylibacl echo 'exec scl enable rh-python36 -- rdiff-backup "$@"' | sudo tee /usr/bin/rdiff-backup sudo chmod +x /usr/bin/rdiff-backup
1.8. Fedora and derivatives (from PyPI)
sudo dnf install python3-pip python3-setuptools py3libacl python3-pyxattr sudo pip3 install rdiff-backup
1.9. Other Linux and UN*X-oid systems, e.g. BSD (from PyPi)
You need to make sure that the following requirements are met:
Python 3.6 or higher
pip3 e.g. installed with
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py; sudo python3 get-pip.py.
librsync 1.0.0 or higher
pylibacl (optional, to support ACLs)
pyxattr (optional, to support extended attributes) - the xattr library (without py) isn’t regularly tested but should work and you will be helped
if Python’s version is 3.7.x or below, importlib-metadata 1.x (or alternatively setuptools)
psutil as an optional dependency (else rdiff-backup uses
SSH for remote operations
Then you should only need to call the following before you can use rdiff-backup:
sudo pip3 install rdiff-backup
especially if your platform is not i386 or amd64, e.g.
ARM/MIPS/PowerPC/etc, but also if the pip3 installation fails with
Just download and unpack the file
rdiff-backup-VERSION.win32exe.zip available as asset attached to one of the releases available in the releases section and drop the binary
rdiff-backup.exe somewhere in your PATH and it should work, as it comes with all dependencies included.
For remote operations, you will need to have an SSH package installed. We recommand using OpenSSH from http://www.mls-software.com/opensshd.html
2. BASIC USAGE
Creating your first backup is as easy as calling
rdiff-backup <source-dir> <backup-dir> (possibly as root), e.g.
rdiff-backup -v5 /home/myuser /run/media/myuser/MYUSBDRIVE/homebackup would save your whole home directory (under Linux) to a USB drive (which you should have formatted with a POSIX file system, e.g.
ext4 or xfs).
-v5 (v for verbosity), rdiff-backup isn’t very talkative, hence the recommendation.
Subsequent backups can simply be done by calling exactly the same command, again and again. Only the differences will be saved to the backup directory.
If you need to restore the latest version of a file you lost, it can be as simple as copying it back using normal operating system means (cp or copy, or even pointing your file browser at the backup directory).
taking the above example
cp -i /run/media/myuser/MYUSBDRIVE/homebackup/mydir/myfile /home/myuser/mydir/myfile and the lost file is back!
We’re also happy to help if you create an issue to our GitHub repo.
The most important is probably to explain what happened with which version of rdiff-backup, with which command parameters on which operating system version, and attach the output of rdiff-backup run with the very verbose option
The FAQ in particular is an important reference, especially if you are using smbfs/CIFS, Windows, or have compiled by hand on Mac OS X.
Rdiff-backup is an open source software developed by many people over a long period of time. There is no particular company backing the development of rdiff-backup, so we rely very much on individual contributors who "scratch their itch". All contributions are welcome!
There are many ways to contribute:
Testing, troubleshooting and writing good bug reports that are easy for other developers to read and act upon
Reviewing and triaging existing bug reports and issues, helping other developers focus their efforts
Writing documentation (e.g. the man page), or updating the webpage rdiff-backup.net
Packaging and shipping rdiff-backup in your own favorite Linux distribution or operating system
Running tests on your favorite platforms and fixing failing tests
Writing new tests to get test coverage up
Fixing bug in existing features or adding new features
If you don’t have anything particular in your mind but want to help out, just browse the list of issues. Both coding and non-coding tasks have been filed as issues.
For source code related documentation see docs/DEVELOP.adoc
4.1. Installing latest development release
To provide meaningful bug reports and help with testing, please use the latest development release.
4.1.1. Ubuntu and Debian development releases
sudo add-apt-repository ppa:rdiff-backup/rdiff-backup-development sudo apt update sudo apt install rdiff-backup
4.1.2. Fedora, CentOS and RHEL (from COPR)
On CentOS and RHEL (7 and 8):
sudo yum install dnf-plugins-core epel-release sudo yum copr enable frankcrawford/rdiff-backup sudo yum install rdiff-backup
On Fedora 30+:
sudo dnf install dnf-plugins-core sudo dnf copr enable frankcrawford/rdiff-backup sudo dnf install rdiff-backup
4.1.3. PyPi pre-releases
sudo pip3 install rdiff-backup --pre