BURP - BackUp and Restore Program
index why faq howto download contact




Q. Why?

A. Please go to the WHY page.


Q. What operating systems do I need to be running?

The burp server (where the backups are stored) needs to run on a Linux-style operating system. Personally, I use Debian. The burp client (from which backups are taken) can run on Linux or Windows.

Q. What are the main features? What works?

A. At the time of writing, the following features work:

  • Server mode runs on Unix-based systems.
  • Client mode runs on Windows and Unix-based systems.
  • Windows Volume Shadow Copy Service (VSS) support (Windows XP R2 and newer).
  • Windows 32bit and 64bit support.
  • Delta differencing with librsync.
  • Network backups.
  • Backs up and restores files, directories, symlinks, hardlinks, fifos and nodes.
  • Storage and network compression using zlib.
  • Ability to continue interrupted backups.
  • SSL.
  • Client side encryption - (note: this turns off delta differencing).
  • Scheduling.
  • Email backup success/failure notifications.
  • A live ncurses monitor on the server.
  • Fifo read/write support.
  • Pre/post backup/restore client scripts.
  • Backups of Solaris ZFS snapshot send/receives.
  • Linux acl/xattr support.


Q. What is on the roadmap? What doesn't work?

A. The following items are on my TODO list:

  • Add extra ways of deciding when to delete old backups - e.g, by time, or by space.
  • Add acl/xattr support for FreeBSD and Solaris.
  • Server-side encryption option, so that network deltas can be done.
  • Improve the status monitor.
  • Add an option to set hardlinked_archive on a cycle, instead of just being either on or off.
  • Investigate HFS / resource forks and Mac support.
  • Add include/exclude wildcards.


Q. What are the main dependencies?

A. They are:

  • librsync
  • openssl
  • zlib (>=1.2.5 is recommended)


Q. Do I need to install cygwin on Windows?

No.


Q. How do I build the Windows client?

This is slightly complicated. You might want to go to the DOWNLOAD page and get a prebuilt binary. If you really want to build it yourself, follow the instructions in the README file in the src/win32 directory of the burp source.


Q. How do I build a static Linux binary?

Use the --enable-static and --disable-libtool configure script options.


Q. What licence does Burp use?

A. It is open source free software (where 'free' means both that you do not have to pay for it, and that you have freedom to do what you want with it) released under the AGPLv3 licence. Refer to the Burp LICENCE file for more details.


Q. I get errors like "/0000/0000/1ACA.gz: File too large" in my log.

A. This is burp trying to open a backed up file on the burp server. Older versions of zlib can have problems opening large files. Try upgrading zlib to at least version 1.2.5.


Q. Are you going to do data deduplication on the server side?

No. There are file systems (like btrfs, zfs and btrfs) coming along that will do data deduplication automatically. So applications won't need to do anything particularly special just to get that feature, and anything similar that I might implement now would probably be wasted effort.


Q. What is the best file system to use on the server?

So far, I have done all my testing on ext3, and it works for me. The main concern is not to run out of file system inodes. You can configure the number of inodes when you create the ext3 file system, but you cannot change the number later without reformatting.

One of my test clients has over a million files. Because I had used the ext3 optimisation option for large files on the storage device (having previously been using it for bacula), I initially ran out of inodes. Reformatting the file system to have more inodes has solved the problem.

To see how many inodes I have, I use the command 'df -i'

Here is a helpful 10-year old mailing list post about ext3 inodes: http://markmail.org/message/ergkrg6thswonkgo

(ignore the recommendation for reiserfs - I believe that ext3 has moved on more than reiserfs over the last 10 years!)


Q. I specified LDFLAGS="-L /opt/somepath" to build burp, but when I run it, it uses the system libraries instead of the libraries I installed in /opt/somepath!

Try this: LDFLAGS="-L /opt/somepath -R /opt/somepath"


Q. On Windows, the client exits with a message like: "Could not open 'C:/Documents and Settings/Administrator/NTUSER.DAT': The file is in use by another process." Why?

On newer versions of Windows, things called 'junction points' have been added. In the example given, 'include = C:/Documents and Settings' was set in the client burp.conf, but 'C:/Documents and Settings' is a junction point and the real path is 'C:/Users'.
Pointing burp at the junction point means that it goes outside of the VSS snapshot, and hence cannot open files that other processes have open. Use the real path instead.


Burp is open and free software. I work on it in my spare time. If you would like this work to continue, please consider making a small donation.


Burp, don't suck. Last updated: July 2011