Skip to content
burp - backup and restore program
C Shell C++ Roff Makefile NSIS Other
Branch: master
Clone or download

Latest commit

grke 861: Try to make hostname calls in burp_ca more robust.
Change-Id: Ic1004e961f7fd2a1c02a3d39befea695869713e4
Latest commit 4c1eeac May 15, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
configs 861: Try to make hostname calls in burp_ca more robust. May 14, 2020
docs 855: Talk about the -d option in docs/restoring.txt. May 10, 2020
m4 Get rid of custom macros. Dec 30, 2015
manpages Manpage tweak. Jan 24, 2020
src 854: Fix "Directory: '(null)'" log message. May 14, 2020
systemd Merge "Tweaks for release." May 2, 2020
test Tweaks to fix automated testing. Apr 5, 2020
utest Fix ck assertions. Apr 15, 2020
.gitignore 689: Make list show working/finishing backups. Mar 11, 2018 Make executable. Oct 29, 2017
.travis.yml Fix travis for osx, where brew is now installing librsync 2.0.1. Oct 29, 2017
CHANGELOG 855: Talk about the -d option in docs/restoring.txt. May 10, 2020
CONTRIBUTORS 'deajan' should be 'Orsiris de Jong' in CHANGELOG. Mar 27, 2019
DONATIONS Tweaks for release. Apr 30, 2020
LICENSE Include yajl directly, to avoid versioning and ruby problems. Aug 11, 2014 Attempt to fix travis. Apr 16, 2020
README Update README Centos section. Jan 18, 2020
TODO Minor changes suggested for the documentation (#731) Jul 14, 2018
UPGRADING 823: Fix server-initiated restore without a restoreprefix causing Aug 31, 2019 Tweaks for release. Apr 30, 2020
valgrind.supp Run utests with valgrind in automatic testing suite. Feb 15, 2019


Quick start

The following assumes that you are installing the burp server from source.

You need to compile burp on a unix-based operating system first. Make sure
that you have openssl, zlib, librsync, and uthash libraries and development
packages installed.

 - Debian/Ubuntu:
	apt-get install make pkg-config check g++ \
		librsync-dev libz-dev libssl-dev uthash-dev

 - RHEL or CentOS 7:
	yum install
	yum install make gcc gcc-c++ bzip2 pkgconfig \
		librsync-devel libzip-devel openssl-devel uthash-devel \
		libacl-devel ncurses-devel openssl-perl libcap-devel

 - RHEL or Centos 8:
	dnf install epel-release
	dnf --enablerepo=PowerTools list uthash-devel
	dnf install make gcc librsync-devel openssl-devel libacl-devel \
		ncurses-devel zlib-devel

After this point, make sure you are standing in the burp source directory. 

If you are taking the source directly from git:
	Install these extra packages with your distribution's package manager:
		autoconf automake libtool
		autoreconf -vif

Now run the configure script, noting that if you are using automake >= 1.16.1,
you may need to add '--disable-dependency-tracking':
	./configure --prefix=/usr --sysconfdir=/etc/burp --localstatedir=/var

Then run:

All being well, burp will compile successfully. Install it as root:
	make install

Now install configuration files. Note that this will overwrite existing
configuration files in /etc/burp, so you will probably not want to run this if
you have an existing burp installation:
	make install-configs

Start the burp server:
	burp -c /etc/burp/burp-server.conf

By default, the server will fork into the background and run as a daemon. To
stay in the foreground, add the '-F' option. The first time that the server
runs, its startup will be a slower than usual because it needs to generate its
SSL certificates. However, this will probably only be noticeable on old

The server is now ready for clients to connect to it.

Unix client

If you are going to run the client on the same machine on which you installed
the server, the client will already be installed because the client is built
into the same binary (the behaviour of the binary depends upon the
configuration file that is given to it). Otherwise, you can either go through
the 'configure/make/make install' sequence on the client machine, or get burp
via your distribution's package manager.

The example client configuration file is /etc/burp/burp.conf.
It will backup /home by default.

You can either force a backup by hand:
	burp -a b

Or add a regular cron job like the following to /etc/cron.d/burp (or
equivalent). This makes the client ask the server every twenty minutes whether
it is yet time for a new backup. It is probably a good idea to change the
numbers for each client, in order to spread the load a bit:
7,27,47 * * * * root    /usr/sbin/burp -a t

Whether or not an instance of the client results in an actual backup depends
upon the timer settings in the server config files.

Windows client

Pick the 32-bit or 64-bit Burp installer as appropriate - visit to find one of them.

If you need to compile one yourself, instructions can be found at
src/win32/README in the source package.

The Windows installer will ask you for the address of your server, the client
name, and the client password. Burp will then install its files to:
C:/Program Files/Burp
(Note that the "C:/Program Files/" part may differ, depending on Windows'
language settings).
If you need to change client configuration settings, the file can be found at:
C:/Program Files/Burp/burp.conf
It will be configured to backup "C:/Users", if it existed at installation
time, or otherwise "C:/Documents and Settings".

A Windows Scheduler task will have been installed and will be configured to
run every 20 minutes from the time of the installation. Whether or not this
results in an actual backup depends upon the timer settings in the server
config files.

To force a backup by hand, start the burp client from within its directory:
cd "C:\Program Files\Burp\bin"
burp.exe -a b
If you are running Windows 7, you might need to start the command prompt with
"Run as Administrator".

Mac client

The installation on a Mac is performed via Homebrew (
After installing Homebrew, with an admin account you just have to open a
Terminal and type the command:
	brew install burp

Burp will be installed in the subdirectories of /usr/local (see Homebrew
website for details on the subdirectories).

You'll then have to edit the client configuration file:

At the minimum, you'll have to change the line:
include = /home
to something like:
include = /Users

Automated deploy with ansible

For ansible roles to manage burp, please see:

For more help, see the man page - type 'man burp'.
You can’t perform that action at this time.