burp - backup and restore program
C C++ Shell Groff Makefile NSIS Other
Latest commit 717d79d Nov 21, 2016 @grke Add '-Q' option to override 'stdout' config option and force
quietness from the command line.
Tidy up manpage command line options.

Change-Id: I4255da8edaa02916966ce0ead10c044ab993632a
Failed to load latest commit information.
android Update versions in the android build script. Aug 20, 2016
configs Remove unused configs/install script. Aug 8, 2016
debian Peter Maloney's fix for the debian init script so that it Aug 7, 2016
docs Add better docs for the cname_ options. Sep 15, 2016
freebsd/rc.d Add /usr/local/bin and /usr/local/sbin to daemon's path for the sake … May 15, 2014
m4 Get rid of custom macros. Dec 30, 2015
manpages Add '-Q' option to override 'stdout' config option and force Nov 21, 2016
opensuse Remove lots of unnecessary checks Dec 30, 2015
rhel adapt rpm spec file for 2.0.36, test on CentOS7 Apr 6, 2016
src Add '-Q' option to override 'stdout' config option and force Nov 21, 2016
test Make server initiated restores work in protocol 2. Sep 17, 2016
utest Bug fix for protocol2 restore endfile ordering. Nov 20, 2016
.gitignore scripts: remove hardcoded paths, generate them with Makefile instead. ( Apr 26, 2016
.travis.yml Compile Burp as C (#462) Aug 23, 2016
CHANGELOG Tweaks for 2.0.52, and libressl fix. Nov 7, 2016
CONTRIBUTORS Add Wybren Buijs' Ubuntu bare metal restore instructions. Apr 20, 2016
DONATIONS Tweaks for 2.0.50 release. Nov 2, 2016
LICENSE Include yajl directly, to avoid versioning and ruby problems. Aug 11, 2014
Makefile.am Stop server child hanging on verify/restore when gzipped file is Sep 22, 2016
README Work on supporting xattrs and acls in protocol2. Mar 13, 2016
TODO Get the server to client counters working via JSON. Aug 31, 2016
UPGRADING Bug fixes for rabin fingerprinting. May 31, 2016
configure.ac Tweaks for 2.0.52, and libressl fix. Nov 7, 2016


Quick start

The following assumes that you are not installing the burp server via a
distribution's package management system.

You need to compile burp on a unix-based operating system first. Make sure that
you have openssl, zlib, librsync, uthash and yajl libraries and development
libraries installed. With debian or ubuntu, this command should install them
for you:

apt-get install make pkg-config check g++ \
	librsync-dev libz-dev libssl-dev uthash-dev libyajl-dev

(If you are checking out directly from git, you will also need to get some
extra packages in order to generate the configure file:
apt-get install autoconf automake libtool
autoreconf -vif)

Change to the burp source directory and run:

./configure --prefix=/usr --sysconfdir=/etc/burp --localstatedir=/var

Then run "make". All being well, burp will compile successfully. Run "make
install" and then "make install-configs" as root to install.
The "make install-configs" command will overwrite configuration files in
/etc/burp, so you will probably not want to do that if you have an existing
burp installation.

Start the burp server with this command: 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
http://burp.grke.org/ 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 (http://brew.sh).
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

For more help, see the man page - type 'man burp'.