Burp(8)

πŸ“¦
version 3.1.4 Β· 2 versions
, in debian bookworm, debian trixie, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute

✨ Burp(8) ✨

okay bestie, gather round, because this is the manual page for Burp β€” the BackUp and Restore Program β€” straight outta the System Manager's Manual section 8. she's long, she's iconic, and she has OPINIONS. let's get into it πŸ’…


🌸 NAME 🌸

Burp β€” BackUp and Restore Program. that's it. that's the name. it does exactly what it says on the tin, no cap.


πŸ¦‹ SYNOPSIS πŸ¦‹

burp [OPTIONS]

literally just burp and then whatever flags you feel like. slay.


πŸ’– DESCRIPTION πŸ’–

BackUp and Restore Program. yes bestie, that's the whole description, she's mysterious like that, we love a minimal queen πŸ‘‘


πŸ”₯ SERVER OPTIONS πŸ”₯

these are the ones you use when you're running the server side, okay? pay attention.

  • -c [path] β€” short for "config file". the argument is a path to the config file. default is /etc/burp/burp.conf. (yes she said "short for 'config file'" and then gave you a flag that is also a letter, don't think about it too hard πŸ’€)
  • -F β€” Foreground mode. if you don't give this option, the server will fork into the background and run as a daemon. so like, -F is the "stay here and hold my hand" flag 🫢
  • -g β€” Generate initial CA keys and certificates, and then exit. one and done.
  • -h β€” Print help and then exit.
  • -? β€” Print help and then exit. same energy, different punctuation.
  • -i β€” Print an index table of symbols that humans may see burp produce, and exit. yes the symbols have lore.
  • -n β€” No forking mode. the program will accept a single query, deal with it, and then exit. this is useful for debugging. implies -F. it's giving "one and done, no commitment" ✨
  • -o [option=value] β€” Override a given option. you can use this flag several times to override multiple options. you can even reset list options with the special syntax := (example: -o "include:=/tmp"). so much power in one tiny flag 😭
  • -Q β€” Do not log to stdout (overrides config file stdout setting).
  • -t β€” Dry-run mode to test config file syntax. vibe check your config before you commit, bestie.
  • -v β€” Log to stdout (overrides config file stdout setting).
  • -V β€” Print version and exit.

⭐ ADDITIONAL SERVER OPTIONS TO USE WITH -a c ⭐

  • -C [client] β€” Run as if forked via a connection from this client. pretending to be somebody else, but legally πŸ’…

πŸŽ€ CLIENT OPTIONS πŸŽ€

now the client side, where the real drama lives.

  • -a [b|t|r|R|l|L|p|v|V|delete|e|T|d|D] β€” short for "action". the arguments mean backup, timed backup, restore, Restore, list, long list, parseable list, verify, Verify, delete, estimate, timer check, diff, or long diff, respectively. so many letters, so many destinies.
  • -b [number|a] β€” short for "backup number". the argument is a number, or a to select all backups. yes, a means all. iconic.
  • -c [path] β€” short for "config file". the argument is a path to the config file. the default is /etc/burp/burp.conf, or %PROGRAMFILES%\Burp\burp.conf on Windows. cross-platform queen 🌈
  • -C [client] β€” Allows you to specify an alternative client to list or restore from. requires that the server configuration of the alternative client permits your client to do this. see the restore_client and super_client options. permission slip required, bestie.
  • -d [path] β€” short for "directory". when restoring, the argument is a path to an alternative directory to restore to. when listing, the argument is the directory to list. dual purpose, multitasking main character energy.
  • -f β€” short for "force overwrite". without this option set, a restore will not overwrite existing files. be careful, this one goes feral πŸ”₯
  • -h β€” Print help and then exit.
  • -? β€” Print help and then exit.
  • -o [option=value] β€” Override a given option. you can use this flag several times to override multiple options. you can even reset list options with the special syntax := (example: -o "include:=/tmp").
  • -i β€” Print an index table of symbols that humans may see burp produce, and exit.
  • -q [max secs] β€” When running a timed backup, sleep for a random number of seconds (between 0 and the number given) before contacting the server. alternatively, this can be specified by the randomise configuration file option. chaos, but make it scheduled ✨
  • -Q β€” Do not log to stdout (overrides config file stdout setting).
  • -r [regex] β€” short for "regular expression". the argument is a case sensitive regular expression with which to match backup files. use it for lists, restores and verifies.
  • -R [regex] β€” Case insensitive alternative to -r. same but louder and less picky.
  • -s [number] β€” For use with restores β€” strip a number of leading path components. chopping off the front like a glow-up haircut.
  • -t β€” Dry-run mode to test config file syntax.
  • -v β€” Log to stdout (overrides config file stdout setting).
  • -x β€” On restore, do not use the Windows VSS API, and strip out the VSS data. works both on Windows and non-Windows.
  • -X (Windows only) β€” On restore, do not use the Windows VSS API and do not attempt to strip out the VSS data. give this option when you are restoring a backup that contains no VSS data. only for the Windows girlies.
  • -a s β€” Run this to connect to a running server to get a live monitor of the status of all your backup clients. the live monitor requires ncurses support at compile time. live, laugh, monitor πŸ‘‘
  • -a S β€” Similar to -a s, but it prints the main status monitor summary screen to stdout. one application is that a script can run this and email an administrator the output on a cron job. this doesn't require ncurses support. there are additional options that can be given with both these options, listed below.

πŸ’œ ADDITIONAL CLIENT OPTIONS TO USE WITH -a s and -a S πŸ’œ

  • -C [client] β€” Limit the output to a single client.
  • -b [number] β€” Show listable files in a particular backup (requires -C).
  • -z [file] β€” Dump a particular log file in a backup (requires -C and -b).
  • -d [path] β€” Show a particular path in a backup (requires -C and -b).
  • -l [path] β€” Log file for status monitor β€” useful for debugging.

πŸ“ ADDITIONAL CLIENT OPTIONS TO USE WITH -a b πŸ“

  • -o seed_src=<directory> -o seed_dst=<directory> β€” Make a seeding backup. the source directory is replaced with the destination directory on completion. both paths need to be absolute. your configured include paths need to be the same as the source directory, or within the source directory. there must be no other existing backups of the client running the seed job. a use case might be to make an initial backup of a local hard drive, and then to ship the hard drive to a remote location for subsequent backups. it's giving "sneakernet but make it glam" πŸ¦‹

πŸ’€ EXAMPLES πŸ’€

the part you actually came for, bestie. real commands, real vibes.

  • burp -a b β€” Runs a backup.
  • burp -a t β€” Timed backup. the same as burp -a b, except that a script is run on the server before deciding to go ahead. the intention is that this command will be run on a repeating cron job with a short interval, and that the server will decide when it is time for a new backup. let the server be the decision-maker for once.
  • burp -a l β€” Lists the available backups and dates.
  • burp -a l -b 1 β€” Lists all the files in backup number 1.
  • burp -a l -b a β€” Lists all the files in all the backups.
  • burp -a l -b c β€” Lists all the files in the current backup.
  • burp -a l -b 1 -r myregex β€” Lists all the files in backup number 1 that match the regular expression myregex.
  • burp -a L -b 1 -r myregex β€” Long lists all the files in backup number 1 that match the regular expression myregex. this is like doing an ls -l. fancy list mode ✨
  • burp -a L -b 1 -d '' β€” Long list the top level directory of backup 1.
  • burp -a L -b 1 -d '/home/graham' β€” Long list the /home/graham directory of backup 1. these -d versions of the list function provide the ability to "browse" backups. it's giving file explorer, but make it terminal πŸŽ€
  • burp -C altclient -a L β€” Long list the top level directory of backup 1 of client altclient.
  • burp -a r -d /tmp/restoredir β€” Restores all the files in the most recent backup into the directory /tmp/restoredir.
  • burp -a r -b 1 -d /tmp/restoredir -r myregex β€” Restores all the files in backup number 1 into the directory /tmp/restoredir, if they match the regular expression myregex.
  • burp -a r -b 1 -d /tmp/restoredir -r myregex -s 2 β€” Restores all the files in backup number 1 into the directory /tmp/restore, if they match the regular expression myregex, and strip 2 leading path components.
  • burp -C altclient -a r -b 1 -d /tmp/restoredir -r myregex β€” Restores all the files in backup number 1 of client altclient into the directory /tmp/restoredir, if that match the regular expression myregex.
  • burp -a v β€” Verifies the most recent backup.
  • burp -a v -b 1 -r myregex β€” Verifies everything in backup number 1 that matches the regular expression myregex.
  • burp -a delete -b 1 β€” Deletes backup number 1. note that burp will not delete backup directories that other backup directories depend upon. she's protective like that 🫢
  • burp -a d -b 1 -b 2 β€” Report the differences between backups 1 and 2 (use -a D for more verbosity).
  • burp -a p -b 1 β€” Lists all the files in backup number 1, in burp-parsable list format. you may append something like >/tmp/restore_list to send to a file, edit, then use as an input for restoring. as in the following command:
  • burp -a r -b 1 -o restore_list=/tmp/restore_list β€” Restores from backup 7, matching the list of files given in /tmp/restore_list. the files given must be ordered as they would be in the output of a burp list command.
  • burp -a p -b 6 | burp -a R -b 7 β€” Restores from backup 7, matching the list of files on standard input, which is provided by burp's list of backup 6 (-a R is shorthand for -a r -o restore_list=-).
  • burp -a p -b 6 | burp -a V -b 7 β€” Verifies from backup 7, matching the list of files on standard input, which is provided by burp's list of backup 6 (-a V is shorthand for -a v -o restore_list=-).
  • burp -a s β€” Run the ncurses status monitor.
  • burp -a S β€” Print a status monitor snapshot, summarising all clients.
  • burp -C testclient -a S β€” Print a status monitor snapshot, showing client testclient only.

🧚 SERVER CONFIGURATION FILE OPTIONS 🧚

now we're in the config file, bestie. this is where you set the whole vibe.

  • . [glob] β€” Read additional configuration files. yes, the option name is literally a dot. she's minimalist πŸ’…
  • mode=server β€” Required to run in server mode. no mode=server, no server. periodt.
  • listen=[address]:[port] β€” Defines the main TCP address and port that the server listens on. specify multiple listen entries on separate lines in order to listen on multiple addresses and ports. each pair can be configured with its own max_children value.
  • listen_status=[address]:[port] β€” Defines the main TCP address and port that the server listens on for status requests. specify multiple listen_status entries on separate lines in order to listen on multiple addresses and ports. each pair can be configured with its own max_status_children value. comment out to have no status server.
  • network_allow=[string] β€” Allows access for the specified network or address. for example: ::1 or 127.0.0.1/8. specify multiple network_allow entries on separate lines to allow multiple networks or addresses. if this option is not given, all networks are allowed. this option can be overridden by the client configuration files in clientconfdir on the server.
⚠️ heads up bestie: that last line about network_allow being overridden by client config files in clientconfdir on the server is IMPORTANT. don't forget it. also, "if this option is not given, all networks are allowed" β€” that's not a cute vibe, that's a wide open door, so pay attention πŸ’€

okay we're only getting started, there's SO much more of this page and it keeps going, so stay with me 🌈

  • network_allow_status=[string] β€” okay so this one lets a specific network or address get access to the status server. For example: '::1' or '127.0.0.1/8'. Specify multiple network_allow entries on separate lines to allow multiple networks or addresses. If this option is not given, all networks are allowed. This option can be overridden by the client configuration files in clientconfdir on the server. πŸ’–
  • cname_lowercase=[0|1] β€” Whether to force lowercase cname when looking-up in clientconfdir. This also affects the fqdn lookup on the client (see client configuration options for details). The default is 0. When set to 1 the name provided by the client while authenticating will be lowercased. ✨
  • cname_fqdn=[0|1] β€” Whether to keep fqdn cname (like 'testclient.example.com') when looking-up in clientconfdir. This also affects the fqdn lookup on the client (see client configuration options for details). The default is 1. When set to 0, the fqdn provided by the client while authenticating will be stripped ('testclient.example.com' becomes 'testclient'). πŸŽ€
  • daemon=[0|1] β€” Whether to daemonise. The default is 1. πŸ¦‹
  • fork=[0|1] β€” Whether to fork children. The default is 1. 🌸
  • directory=[path] β€” Path to the directory in which to store backups. πŸ’…
  • directory_tree=[0|1] β€” When turned on (which is the default) and the client is on version 1.3.6 or greater, the structure of the storage directory will mimic that of the original filesystem on the client. 🫢
  • timestamp_format=[strftime format] β€” This allows you to tweak the format of the timestamps of individual backups. See 'man strftime' to see available substitutions. If this option is unset, burp uses "%Y-%m-%d %H:%M:%S %z". 😭
  • password_check=[0|1] β€” Allows you to turn client password checking on or off. The default is on. SSL certificates will still be checked if you turn passwords off. This option can be overridden by the client configuration files in clientconfdir on the server. πŸ”₯
  • clientconfdir=[path] β€” Path to the directory that contains client configuration files. πŸ‘‘
  • lockfile=[path] β€” Path to the lockfile that ensures that two server processes cannot run simultaneously. 🌈
  • pidfile=[path] β€” Synonym for lockfile. ⭐
  • syslog=[0|1] β€” Log to syslog. Defaults to off. πŸ’€
  • stdout=[0|1] β€” Log to stdout. Defaults to on. πŸ™ˆ
  • keep=[number] β€” Number of backups to keep. This can be overridden by the clientconfdir configuration files in clientconfdir on the server. Specify multiple 'keep' entries on separate lines in order to keep multiple periods of backups. For example, assuming that you are doing a backup a day, keep=7 keep=4 keep=6 (on separate lines) will keep 7 daily backups, 4 weekly backups (7x4=28), and 6 multiples of 4 weeks (7x4x6=168) - roughly 6 monthly backups. Effectively, you will be guaranteed to be able to restore up to 168 days ago, with the number of available backups exponentially decreasing as you go back in time to that point. In this example, every 7th backup will be hardlinked to allow burp to safely delete intermediate backups when necessary. You can have as many 'keep' lines as you like, as long as they don't exceed 52560000 when multiplied together. That is, a backup every minute for 100 years. πŸ“
  • manual_delete=[path] β€” This can be overridden by the clientconfdir configuration files in clientconfdir on the server. When the server needs to delete old backups, or rubble left over from generating reverse patches with librsync=1, it will normally delete them in place. If you use the 'manual_delete' option, the files will be moved to the path specified for deletion at a later point. You will then need to configure a cron job, or similar, to delete the files yourself. Do not specify a path that is not on the same filesystem as the client storage directory. 🧚
  • hardlinked_archive=[0|1] β€” On the server, defines whether to keep hardlinked files in the backups, or whether to generate reverse deltas and delete the original files. Can be set to either 0 (off) or 1 (on). Disadvantage: More disk space will be used Advantage: Restores will be faster, and since no reverse deltas need to be generated, the time and effort the server needs at the end of a backup is reduced. πŸ’œ
  • max_hardlinks=[number] β€” On the server, the number of times that a single file can be hardlinked. The bedup program also obeys this setting. The default is 10000. πŸ’–
  • librsync=[0|1] β€” When set to 0, delta differencing will not take place. That is, when a file changes, the server will request the whole new file. The default is 1. This option can be overridden by the client configuration files in clientconfdir on the server. ✨
  • librsync_max_size=[B/KB/MB/GB] β€” Only use librsync when a file is less than the given size. Both the most recently backed up version of a file and the version to be backed up are checked. The default is 0, which means the option is off. This option can be overridden by the client configuration files in clientconfdir on the server. πŸŽ€
  • compression=zlib[0-9] (or gzip[0-9]) β€” Choose the level of zlib compression for files stored in backups. Setting 0 or zlib0 turns compression off. The default is zlib9. This option can be overridden by the client configuration files in clientconfdir on the server. 'gzip' is a synonym of 'zlib'. πŸ¦‹
  • hard_quota=[B/KB/MB/GB] β€” Do not back up the client if the estimated size of all files is greater than the specified size. Example: 'hard_quota = 100GB'. Set to 0 (the default) to have no limit. 🌸
  • soft_quota=[B/KB/MB/GB] β€” A warning will be issued when the estimated size of all files is greater than the specified size and smaller than hard_quota. Example: 'soft_quota = 95GB'. Set to 0 (the default) to have no warning. πŸ’…
  • version_warn=[0|1] β€” When this is on, which is the default, a warning will be issued when the client version does not match the server version. This option can be overridden by the client configuration files in clientconfdir on the server. 🫢
  • path_length_warn=[0|1] β€” When this is on, which is the default, a warning will be issued when the client sends a path that is too long to replicate in the storage area tree structure. The file will still be saved in a numbered file outside of the tree structure, regardless of the setting of this option. This option can be overridden by the client configuration files in clientconfdir on the server. 😭
  • client_lockdir=[path] β€” Path to the directory in which to keep per-client lock files. By default, this is set to the path given by the 'directory' option. πŸ”₯
  • user=[username] β€” Run as a particular user. This can be overridden by the client configuration files in clientconfdir on the server. πŸ‘‘
  • group=[groupname] β€” Run as a particular group. This can be overridden by the client configuration files in clientconfdir on the server. 🌈
  • readall=[0|1] β€” Keep readall capability when dropping root privileges (default 0). When enabled changes default atime to 1. ⭐
  • umask=[umask] β€” Set the file creation umask. Default is 0022. πŸ’€
  • ratelimit=[Mb/s] β€” Set the network send rate limit, in Mb/s. If this option is not given, burp will send data as fast as it can. If you want the server's sending speed to be limited, you will also need to set this option on the server side. πŸ™ˆ
  • network_timeout=[s] β€” Set the network timeout in seconds. If no data is sent or received over a period of this length, burp will give up. The default is 7200 seconds (2 hours). πŸ“
  • working_dir_recovery_method=[resume|delete] β€” This option tells the server what to do when it finds the working directory of an interrupted backup (perhaps somebody pulled the plug on the server, or something). This can be overridden by the client configurations files in clientconfdir on the server. Options are...
    • delete: Just delete the old working directory.
    • resume: Continue the previous backup from the point at which it left off. NOTE: If the client has changed its include/exclude configuration since the backup was interrupted, the recovery method will automatically switch to 'delete'. See also the 'resume attempts' option. 🧚
  • max_resume_attempts=[number] β€” If working_dir_recovery_method is 'resume', this option tells the server how many times to attempt to resume before giving up and deleting the working directory. The default is 0, which means to never give up. πŸ’œ
  • client_can_delete=[0|1] β€” Turn this off to prevent clients from deleting backups with the '-a delete' option. The default is that clients can delete backups. Restore clients can override this setting. πŸ’–
  • client_can_diff=[0|1] β€” Turn this off to prevent clients from diffing backups with the '-a d' option. The default is that clients can diff backups. Restore clients can override this setting. ✨
  • client_can_force_backup=[0|1] β€” Turn this off to prevent clients from forcing backups with the '-a b' option. Timed backups will still work. The default is that clients can force backups. πŸŽ€
  • client_can_list=[0|1] β€” Turn this off to prevent clients from listing backups with the '-a l' option. The default is that clients can list backups. Restore clients can override this setting. πŸ¦‹
  • client_can_monitor=[0|1] β€” Turn this off to prevent clients from being able to run the status monitor. The default is that clients can run the status monitor. Restore clients can override this setting. 🌸
  • client_can_restore=[0|1] β€” Turn this off to prevent clients from initiating restores with the '-a r' option. The default is that clients can initiate restores. Restore clients can override this setting. πŸ’…
  • client_can_verify=[0|1] β€” Turn this off to prevent clients from initiating a verify job with the '-a v' option. The default is that clients can initiate a verify job. Restore clients can override this setting. 🫢
  • super_client=[client] β€” bestie, this one is the keys to the whole kingdom. A super_client is allowed to list, verify, restore, delete, and diff files belonging to any other client β€” but only according to that super_client's client_can permissions (like, client_can_list, yk). You can drop multiple super_client lines, no cap. If that feels way too permissive (and honestly, it might), you can set a super_client for individual original clients inside the individual clientconfdir files instead, or go look at the restore_client option. πŸ—οΈ
  • restore_client=[client] β€” same energy as super_client, but with ✨conditions✨. A restore_client may list, verify, restore, delete, and diff files belonging to any other client, but only according to the client_can permissions on both the restore_client and the original_client (so, again, things like client_can_list). Multiple restore_client lines? Absolutely, go off. If that's still too permissive for your taste, set a restore_client for individual original clients in the individual clientconfdir files.
  • ssl_cert_ca=[path] β€” the path to the SSL CA certificate. This file will probably be identical on both the server and the client (twins πŸ’–). It should contain just the certificate in PEM format. For more on this, and the other ssl_* options, pls see docs/burp_ca.txt.
  • ssl_cert=[path] β€” the path to the server SSL certificate. It works for me when the file contains the concatenation of the certificate and private key in PEM format. 🫢
  • ssl_key=[path] β€” the path to the server SSL private key, in PEM format.
  • ssl_key_password=[password] β€” only needed for loading an encrypted certificate. πŸ”
  • ssl_cert_password=[password] β€” synonym for ssl_key_password. same thing, different name, we love a rebrand πŸ’…
  • ssl_ciphers=[cipher list] β€” the allowed SSL ciphers. See openssl ciphers for the details.
  • ssl_compression=zlib[0|5] (or gzip[0|5]) β€” choose the level of zlib compression over SSL. Setting 0 or zlib0 turns SSL compression off. Setting non-zero gives zlib5 compression (it is not currently possible for openssl to set any other level, that's just the rules). The default is 5. And 'gzip' is a synonym of 'zlib' β€” same vibe, different spelling.
  • ssl_verify_peer_early=[0|1] β€” verify and authenticate client certificates at the SSL layer before receiving or sending any Burp traffic. The default is to verify client certificates only after password authentication. πŸ‘€
  • ssl_dhfile=[path] β€” path to the Diffie-Hellman parameter file. To generate one with openssl, use a command like this:
openssl dhparam -dsaparam -out dhfile.pem 2048
  • max_parallel_backups=[number] β€” defines the number of max parallel backups (aka the number of clients that are in a "working" state). The default is 0 β€” unlimited. πŸ”₯
  • max_children=[number] β€” defines the number of child processes to fork (the number of clients that can simultaneously connect). The default is 5. If you've configured multiple listen entries, specify multiple max_children entries on separate lines.
  • max_status_children=[number] β€” defines the number of status child processes to fork (the number of status clients that can simultaneously connect). The default is 5. If you've configured multiple listen_status entries, specify multiple max_status_children entries on separate lines.
  • max_storage_subdirs=[number] β€” defines the number of subdirectories in the data storage areas. The maximum number of subdirectories that ext3 allows is 32000. If you don't set this option, it defaults to 30000.
  • timer_script=[path] β€” path to the script to run when a client connects with the timed backup option. If the script exits with code 0, a backup will run. The first three arguments are the client name, the path to the 'current' storage directory, and the path to the top level storage directories. The next two arguments are reserved, and user arguments (see timer_arg) are appended after that. An example timer script is provided. The timer_script option can be overridden by the client configuration files in clientconfdir on the server. If this option is not set, equivalent code internal to Burp will be run instead β€” and the internal code also uses the timer_arg parameters. ⏰
  • timer_arg=[string] β€” a user-definable argument to the timer script. You can have many of these. The timer_arg options can be overridden by the client configuration files in clientconfdir on the server.
  • timer_repeat_interval=[m] β€” during a timed backup, the timer script can be run at regular intervals. If the client is out of timeband, the backup will be interrupted. For example, setting 5 will cause burp to check every five minutes. The default is 0, which means the script will only run once, at the start of the backup.
  • notify_success_script=[path] β€” path to the script to run when a backup succeeds. πŸŽ‰ User arguments are appended after the first six reserved arguments. An example notify script is provided. The notify_success_script option can be overridden by the client configuration files in clientconfdir on the server.
  • notify_success_arg=[string] β€” a user-definable argument to the notify success script. You can have many of these. The notify_success_arg options can be overridden by the client configuration files in clientconfdir on the server.
  • notify_success_warnings_only=[0|1] β€” set to 1 to send success notifications when there were warnings. If this and notify_success_changes_only are not turned on, success notifications are always sent.
  • notify_success_changes_only=[0|1] β€” set to 1 to send success notifications when there were new or changed files. If this and notify_success_warnings_only are not turned on, success notifications are always sent.
  • notify_failure_script=[path] β€” the same as notify_success_script, but for backups that failed. 😭
  • notify_failure_arg=[string] β€” the same as notify_success_arg, but for backups that failed.
  • notify_failure_on_backup_with_failovers_left=[0|1] β€” in the case where there are server_failover entries left to try, you may not wish to notify on backup failure. The default is on.
  • notify_failure_on_backup_working_dir_deletion=[0|1] β€” on the next backup attempt after a backup was interrupted, it may not be possible to resume the previous backup. In this case (or if working_dir_recovery_method is 'delete'), the previous backup will be deleted. You may wish to be notified about this. The default is off.
heads up bestie β€” that one's a real "your old backup is GONE gone" situation, so read it twice. πŸ’€
  • dedup_group=[string] β€” enables you to group clients together for file deduplication purposes. For example, you might want to set 'dedup_group=xp' for each Windows XP client, and then run the bedup program on a cron job every other day with the option '-g xp'.
  • server_script_pre=[path] β€” path to a script to run on the server after each successfully authenticated connection but before any work is carried out. The arguments to it are 'pre', '(client command)', '(client name)', '(0 or 1 for success or failure)', '(timer script exit code)', and then arguments defined by server_script_pre_arg. If the script returns non-zero, the task asked for by the client will not be run. This command and related options can be overridden by the client configuration files in clientconfdir on the server.
  • server_script_pre_arg=[string] β€” a user-definable argument to the server pre script. You can have many of these.
  • server_script_pre_notify=[0|1] β€” turn on to send a notification email when the server pre script returns non-zero. The output of the script will be included in the email. The default is off. Most people will not want this turned on, because clients usually contact the server at 20 minute intervals and this could cause a lot of emails to be generated. Requires the notify_failure options to be set. πŸ“§
  • server_script_post=[path] β€” path to a script to run on the server before the client disconnects. The arguments to it are 'post', '(client command)', '(client name)', '(0 or 1 for success or failure)', '(timer script exit code)', and then arguments defined by server_script_post_arg. This command and related options can be overridden by the client configuration files in clientconfdir on the server.
  • server_script_post_arg=[string] β€” a user-definable argument to the server post script. You can have many of these.
  • server_script_post_notify=[0|1] β€” turn on to send a notification email when the server post script returns non-zero. The output of the script will be included in the email. The default is off. Requires the notify_failure options to be set.
  • server_script=[path] β€” you can use this to save space in your config file when you want to run the same server script twice. It overrides server_script_pre and server_script_post. This command and related options can be overridden by the client configuration files in clientconfdir on the server. πŸŽ€
  • server_script_arg=[path] β€” goes with server_script and overrides server_script_pre_arg and server_script_post_arg.
  • server_script_notify=[0|1] β€” turn on to send notifications email when the server pre and post scripts return non-zero. The output of the script will be included in the email. The default is off. Requires the notify_failure options to be set.
  • server_script_post_run_on_fail=[0|1] β€” if this is set to 1, server_script_post will always be run. The default is 0, which means that if the task asked for by the client fails, server_script_post will not be run.
  • autoupgrade_dir=[path] β€” path to the autoupgrade directory from which upgrades are downloaded. The option can be left unset in order not to autoupgrade clients. Please see docs/autoupgrade.txt in the source package for more help with this option. ⬆️
  • ca_conf=[path] β€” path to the certificate authority configuration file. The CA configuration file will usually be /etc/burp/CA.cnf. The CA directory indicated by CA.cnf will usually be /etc/burp/CA. If ca_conf is set and the CA directory does not exist, the server will create it, populate it, and the paths indicated by ssl_cert_ca, ssl_cert, ssl_key and ssl_dhfile will be overwritten. For more detailed information on this and the other ca_* options, please see docs/burp_ca.txt. πŸ‘‘
not me stressing that ssl_cert_ca, ssl_cert, ssl_key and ssl_dhfile get overwritten β€” yes, fr fr, that's what it says. ✨
  • ca_name=[name] β€” the name of the CA that the server is gonna generate when it's using the ca_conf option. ✨
  • ca_server_name=[name] β€” the name the server puts into its own SSL certs when it's using ca_conf. πŸ’…
  • ca_burp_ca=[path] β€” path to the burp_ca script, but only when you're using ca_conf.
  • ca_crl=[path] β€” overrides the default path to the certificate revocation list.
  • ca_crl_check=[0|1] β€” do we check the certificate revocation list for revoked certs or not. Simple as that. πŸŽ€
  • monitor_browse_cache=[0|1] β€” should the server cache the directory tree while a monitor client is browsing? Pros: browsing goes zoom zoom fast. Cons: it eats more memory. Pick your fighter. 😭
  • label=[string] β€” okay so you can have SO many of these, and they can be overridden in the client config files in clientconfdir on the server. They show up as an array of strings in the server status monitor JSON output. The whole idea is to give you a lil mechanism to pass arbitrary values to the clients of the server status monitor. cute, right? πŸ¦‹
  • enabled=[0|1] β€” set it to 0 to disable all the clients. Default is 1. And yeah, this one can be overridden per-client in the client config files in clientconfdir on the server. πŸ‘‘
  • fail_on_warning=[0|1] β€” if a warning pops up during a backup, fail the whole backup. Default is 0. Also overridable per-client in the client config files in clientconfdir on the server. πŸ’€

🌸 CLIENT CONFIGURATION FILE OPTIONS 🌸

bestie this is the part where we make the client do stuff. let's go πŸ’–

  • . [glob] β€” read additional config files. On Windows the glob is unimplemented so you'll have to name an actual file. no globbing for the Windows girlies, sorry 😭
  • mode=client β€” required if you wanna run in client mode. non-negotiable.
  • server=[host:port] β€” defines the server to connect to. If you don't drop a port in here, you're gonna need to specify it separately. ✨
  • server_failover=[host:port] β€” defines a failover server to connect to, and yes you can stack more than one server_failover entry. The client tries the next failover server if it can't connect to one. IMPORTANT: the burp client currently does not have the capability to have a different SSL profile for each server, so for this to actually work for you, you need the same CA and the same certs on every server. no cap.
  • failover_on_backup_error=[0|1] β€” failover to the failover servers on backup errors too, not just on failures to connect. Default is off. πŸ™ˆ
  • port=[port] β€” defines the TCP port on the server that we send requests to. If you set this one, it becomes the default for these options, and each of them can be overridden individually: port_backup, port_restore, port_verify, port_list, port_delete. If you don't set it, then you gotta set all of the port options separately. choose your struggle. πŸ’…
  • port_backup=[port] β€” the TCP port on the server we send backup requests to. If it's not set, it defaults to the port option.
  • port_restore=[port] β€” the TCP port on the server we send restore requests to. If it's not set, it defaults to the port option.
  • port_verify=[port] β€” the TCP port on the server we send verify requests to. If it's not set, it defaults to the port_restore option. (yes, restore. not port. iconic behaviour honestly 🌈)
  • port_list=[port] β€” the TCP port on the server we send list requests to. If it's not set, it defaults to the port option.
  • port_delete=[port] β€” the TCP port on the server we send delete requests to. If it's not set, it defaults to the port option.
  • status_port=[port] β€” defines the TCP port that the server is listening on for status requests.
  • cname=[client name] β€” defines the client name you identify as to the server. your little nametag πŸŽ€
  • cname_lowercase=[0|1] β€” whether to force a lowercase cname when it's detecting the cname automatically (ie. when no cname was provided above). Default is 0. When you set it to 1, the name returned by the get_fqdn function gets lowercased. πŸ’œ
  • cname_fqdn=[0|1] β€” whether to keep the fqdn cname (like testclient.example.com) when detecting the cname automatically (ie. when no cname was provided above). Default is 1. When it's 0, the fqdn returned by the get_fqdn function gets stripped, so testclient.example.com becomes testclient. ✨
  • password=[password] β€” defines the password to send to the server.
  • enabled=[0|1] β€” set it to 0 to disable a client. Default is 1. This one can also be set in the client configuration files in clientconfdir on the server.
  • lockfile=[path] β€” path to the lockfile that makes sure two client processes can't run at the same time. (this currently doesn't work on Windows.) 😭
  • pidfile=[path] β€” synonym for lockfile. same girl, different name.
  • syslog=[0|1] β€” log to syslog. Defaults to off.
  • stdout=[0|1] β€” log to stdout. Defaults to on.
  • progress_counter=[0|1] β€” print progress counters on stdout. Defaults to on. πŸ“Š
  • randomise=[max secs] β€” when you're running a timed backup, sleep for a random number of seconds (somewhere between 0 and the number you give) before contacting the server. Or you can do it with the -q command line option instead. either way, you're vibing on a delay 🌸
  • user=[username] β€” run as a particular user. (not supported on Windows.)
  • group=[groupname] β€” run as a particular group. (not supported on Windows.)
  • ratelimit=[Mb/s] β€” set the network send rate limit, in Mb/s. If you don't give this option, burp sends data as fast as it can, no chill whatsoever. And if you want the client's sending speed limited, you also need to set this option on the client side. πŸ’…
  • network_timeout=[s] β€” set the network timeout in seconds. If literally no data gets sent or received over a period this long, burp gives up. Default is 7200 seconds (that's 2 hours, bestie). 😴
  • ca_burp_ca=[path] β€” path to the burp_ca script (burp_ca.bat on Windows). For more info on this, go peek at docs/burp_ca.txt. πŸ“–
  • ca_csr_dir=[path] β€” the directory where certificate signing requests get generated. For more info on this, go peek at docs/burp_ca.txt.
  • ssl_cert_ca=[path] β€” the path to the SSL CA certificate. This file is probably the same on both the server and the client. It should contain just the certificate in PEM format. For more info on this and the other ssl_* options, go peek at docs/burp_ca.txt. πŸ”
  • ssl_cert=[path] β€” the path to the client SSL certificate. It works for me when the file contains the concatenation of the certificate and the private key in PEM format. (the manpage really said "works for me" and honestly? respect.) πŸ’…
  • ssl_key=[path] β€” the path to the client SSL private key in PEM format.
  • ssl_key_password=[password] β€” only needed for loading an encrypted certificate.
  • ssl_cert_password=[password] β€” synonym for ssl_key_password.
  • ssl_peer_cn=[string] β€” must match the common name in the SSL certificate that the server gives when it connects. If ssl_peer_cn is not set, the server name gets used instead.
  • ssl_ciphers=[cipher list] β€” allowed SSL ciphers. Go see openssl ciphers for the details. 🧚
  • server_can_override_includes=[0|1] β€” to stop the server from being able to override your local include/exclude list, set this to 0. Default is 1.
  • server_can_restore=[0|1] β€” to stop the server from initiating restores, set this to 0. Default is 1. You'll also need to give a location for the files to be restored to with the restoreprefix option. πŸ‘€
  • restoreprefix=[path] β€” when restoring, this path gets prefixed to the restore path. The -d command line option overrides this setting. And this setting is required if you're using server initiated restores.
  • encryption_password=[password] β€” set this to enable client side file AES-CBC-256 encryption. If you don't want encryption, just leave this field out of your config file.
IMPORTANT: configuring an encryption_password renders delta differencing pointless, because the smallest real change to a file makes the whole file look different. So activating this option turns off delta differencing, which means whenever a client file changes, the whole new file gets uploaded on the next backup. ALSO IMPORTANT: if you manage to lose your encryption password, you will not be able to unencrypt your files. So you should think about having a copy of the encryption password somewhere off-box, in case your client hard disk fails. Take care when copying and pasting special characters between client conf files, because the encoding of the config file matters. 😭 FINALLY: if you change your encryption password, you'll end up with a mixture of files on the server with different encryption and it may get tricky to restore more than one file at a time. For this reason, if you change your encryption password, you may want to start a fresh chain of backups (by moving the original set aside, for example). Burp will cope fine with turning the same encryption password on and off between backups, and will restore a backup of mixed encrypted and unencrypted files without a problem. ✨
  • glob_after_script_pre=[0|1] β€” set this to 0 if you don't want the include_glob settings to be evaluated after the pre script is run. Default is 1.
  • backup_script_pre=[path] β€” path to a script to run before a backup. It is not run if the server decides it's not yet time for a backup. The arguments to it are 'pre', 'reserved2' to 'reserved5', and then the arguments defined by backup_script_pre_arg β€” unless the option backup_script_reserved_args is off, in which case only the arguments defined by backup_script_pre_arg get passed to it. If the script fails (ie. when the return code is not 0), then the backup is aborted. no second chances πŸ’€
  • backup_script_pre_arg=[string] β€” a user-definable argument to the backup pre script. You can have many of these. stack 'em up πŸŽ€
  • backup_script_post=[path] β€” path to a script to run after a backup. The arguments to it are 'post', [0|1] depending on whether the backup failed or succeeded, 'reserved3' to 'reserved5', and then the arguments defined by backup_script_post_arg β€” unless the option backup_script_reserved_args is off, in which case only the arguments defined by backup_script_post_arg get passed to it. πŸ‘‘
  • backup_script_post_arg=[string] β€” a lil argument you get to define yourself, passed to the backup post script. And bestie, you can have many of these. Stack 'em up πŸ’…
  • backup_script_post_run_on_fail=[0|1] β€” set this to 1 and backup_script_post runs no matter what, win or lose. Default is 0, which means backup_script_post only runs if the backup actually succeeds. So if you're the type who wants the tea even when things flop, flip it to 1 🫢
  • restore_script_pre=[path] β€” path to a script that runs before a restore. What gets handed to it? The arguments 'pre', 'reserved2' to 'reserved5', and then whatever you defined with restore_script_pre_arg β€” unless the option 'restore_script_reserved_args' is off, in which case only the args defined by restore_script_pre_arg get passed along. okay so it's giving "surprise, extra args" but only sometimes ✨
  • restore_script_pre_arg=[string] β€” a user-definable argument for the restore pre script. Yes, you can have many. Collect them like stickers 🌸
  • restore_script_post=[path] β€” path to a script that runs after a restore. Its arguments are 'post', then [0|1] depending on whether the restore failed or succeeded, then 'reserved3' to 'reserved5', and then the args you defined with restore_script_post_arg β€” unless 'restore_script_reserved_args' is off, in which case only your restore_script_post_arg args show up. same energy as the pre one, just post πŸ’œ
  • restore_script_post_arg=[string] β€” a user-definable argument for the restore post script. Many of these allowed, as per usual πŸŽ€
  • restore_script_post_run_on_fail=[0|1] β€” set to 1 and restore_script_post runs whether the restore succeeds or not. Default 0 means it only runs if the restore succeeds. no cap.
  • backup_script=[path] β€” this one's the space-saver. When you want the same script to run before and after a backup, use this instead of writing it twice. It overrides backup_script_pre and backup_script_post. iconic efficiency πŸ‘‘
  • backup_script_arg=[path] β€” the buddy of backup_script. It overrides backup_script_pre_arg and backup_script_post_arg. yes it's literally labeled [path] in the original and yes we're keeping it exactly like that, don't come for me πŸ’€
  • backup_script_reserved_args=[0|1] β€” whether to pass reserved arguments to backup scripts. Default is on.
  • restore_script=[path] β€” same trick, but for restores. Want one script doing both the before and the after? Use this, it saves you config-file lines. It overrides restore_script_pre and restore_script_post πŸ¦‹
  • restore_script_arg=[path] β€” goes with restore_script, and overrides restore_script_pre_arg and restore_script_post_arg.
  • restore_script_reserved_args=[0|1] β€” whether to pass reserved arguments to restore scripts. Default is on.

  • autoupgrade_dir=[path] β€” path to the autoupgrade directory, aka where the upgrades get downloaded to. There's more help on this whole situation in docs/autoupgrade.txt in the source package, so go read that if you're curious. And listen: if you do not want your client to autoupgrade, then just don't set this option. periodt 🚫
  • autoupgrade_os=[string] β€” the name of the client operating system. It should match a directory name inside the server's autoupgrade_dir. And again β€” if you don't want your client autoupgrading, don't set this one either πŸ™ˆ
  • monitor_exe=[path] β€” tells burp where to look for the burp binary when it's forking a monitor client. You might genuinely need this on systems that have no sensible way for a process to figure out its own path β€” like openbsd. sometimes a girl just doesn't know where she lives 😭

πŸ’– INCLUDES / EXCLUDES πŸ’–

Okay bestie, this is the part where you tell burp exactly what you want in your backup and what you want it to leave alone. These options can come from the client, but heads up: if you put at least one include= or include_glob= in the client configuration files over on the server, the server will override them all. The server said "I'm the main character now." πŸ’…


  • include=[path] β€” the path you want in the backup, queen. You can have multiple include lines, so go off. Use forward slashes /, not backslashes \, as path delimiters.
  • exclude=[path] β€” the path you want excluded from the backup. Multiple exclude lines? Absolutely allowed. And again: forward slashes /, not backslashes \.
  • include_glob=[glob expression] β€” include paths that match the glob expression. Like, /home/*/Documents will include /home/user1/Documents and /home/user2/Documents if directories user1 and user2 exist in /home. So satisfying. ✨ The Windows implementation currently limits the expression to contain only one *, with one exception β€” you may also specify *: to expand to detected fixed drives.
  • include_regex=[regular expression] β€” include paths that match the regular expression. You need at least one include or include_glob option so there are actually files to be matched against the regex (no starting point = nothing to match, bestie). And if you have at least one include_regex line, then any path NOT matching the regex will be excluded from your backup. That's just how it is. 🫢
  • exclude_regex=[regular expression] β€” exclude paths that match the regular expression. Simple. Clean. Iconic.
  • include_logic=[logic expression] β€” not yet implemented. See exclude_logic for details on the logic expression syntax. (Someday, babe. Someday. 😭)
  • exclude_logic=[logic expression] β€” exclude paths that match the logic expression. So what even is a logic expression? It may contain several tests chained with boolean operators. The supported operators are: and, or, not, as well as groups of expressions surrounded by parentheses. The supported tests are: file_size, file_match, path_match and file_ext.
    • The file_size test supports comparisons with >, >=, <, <=, = and takes a size as parameter, example: file_size<=5Mb.
    • The file_ext test takes an extension as parameter, example: file_ext=pst.
    • Finally, the file_match and path_match tests take a regular expression as parameter, example: file_match=b$. file_match is ran against the filename (example file1) while path_match is ran against the full path of the file (example: /home/test/file1).

A complete expression may look like:

(file_size>=5Mb and file_size<=10Mb) and (file_ext=pst or file_match=movies) and not file_ext=mp3

There are some limitations though β€” white-spaces and parentheses must be escaped inside a test either by quoting the expression or escaping a given character: file_match="perso(nnal)?", file_match=a filename.

  • include_ext=[extension] β€” extensions to include in the backup. Case insensitive, naturally. Nothing else will be included in the backup. You can have multiple include extension lines. For example, set txt to include files that end in .txt. And you need to specify an include line so that burp knows where to start looking β€” it's not psychic, bestie.
  • exclude_ext=[extension] β€” extensions to exclude from the backup. Case insensitive. Multiple exclude extension lines welcome. For example, set vdi to exclude VirtualBox disk images.
  • exclude_comp=[extension] β€” extensions to exclude from compression. Case insensitive. You can have multiple exclude compression lines. For example, set gz to exclude gzipped files from compression (why compress what's already compressed, right?).
  • exclude_fs=[fstype] β€” file systems to exclude from the backup. Case insensitive. You can have multiple exclude file system lines. For example, set tmpfs to exclude tmpfs. Burp has an internal mapping of file system names to file system IDs, so if you know the file system ID, you can use that instead β€” for example, exclude_fs = 0x01021994 will also exclude tmpfs. Slay.
  • include_fs=[fstype] β€” file systems to include into the backup. Case insensitive. Multiple include file system lines are fine. For example, set ext4 to include ext4. Burp has an internal mapping of file system names to file system IDs β€” if you know the file system ID, you can use that instead. For example, include_fs = 0x01021994 will also include tmpfs. If at least one file system is included, all other filesystems will be excluded per default. Included directories that do not live on an included file system will be skipped, even if cross_all_filesystems is enabled and they contain subdirectories with included file systems. Read that one twice, bestie. πŸ¦‹

Note that on SunOS systems include_fs and exclude_fs will do a case sensitive compare of the string descriptors of the file systems instead of the numeric IDs (see f_basetype member is struct statvfs).

  • min_file_size=[B/KB/MB/GB] β€” do not back up files that are less than the specified size. Example: min_file_size = 10MB. Set to 0 (the default) to have no limit.
  • max_file_size=[B/KB/MB/GB] β€” do not back up files that are greater than the specified size. Example: max_file_size = 10MB. Set to 0 (the default) to have no limit.
  • cross_filesystem=[path] β€” allow backups to cross a particular filesystem mountpoint. You picked one, you brave thing. πŸ’ͺ
  • cross_all_filesystems=[0|1] β€” allow backups to cross all filesystem mountpoints. Go everywhere. No cap.
  • nobackup=[file name] β€” if this file system entry exists, the content of the directory containing it will not be backed up. A little "do not disturb" sign for a whole directory. πŸ™ˆ
  • read_fifo=[path] β€” do not back up the given fifo itself, but open it for reading and back up the contents as if it were a regular file.
  • read_all_fifos=[0|1] β€” open all fifos for reading and back up the contents as if they were regular files. All of them. Every single one.
  • read_blockdev=[path] β€” do not back up the given block device itself, but open it for reading and back up the contents as if it were a regular file.
  • read_all_blockdevs=[0|1] β€” open all block devices for reading and back up the contents as if they were regular files.
  • split_vss=[0|1] β€” when backing up Windows computers, this option allows you to save the VSS header data separate from the file data. The default is off, which means that the VSS header data is saved prepended to the file data.
  • strip_vss=[0|1] β€” when backing up Windows computers, this option allows you to prevent the VSS header data being backed up. The default is off. To restore a backup that has no VSS information on Windows, you need to give the client the -x command line option. Important little detail, don't forget it. ✨
  • vss_drives=[list of drive letters] β€” when backing up Windows computers, this option allows you to specify which drives have VSS snapshots taken of them. If you omit this option, burp will automatically decide based on the include options. If you want no drives to have snapshots taken of them, you can specify 0.
  • acl=[0|1] β€” if acl support is compiled into burp, this allows you to decide whether or not to backup acls at runtime. The default is 1.
  • xattr=[0|1] β€” if xattr support is compiled into burp, this allows you to decide whether or not to backup xattrs at runtime. The default is 1.
  • atime=[0|1] β€” this allows you to control whether the client uses O_NOATIME when opening files and directories. The default is 0, which enables O_NOATIME. This means that the client can read files and directories without updating the access times. However, this is only possible if you are running as root, or are the owner of the file or directory. If this is not the case (perhaps you only have group or world access to the files), you will get errors until you set atime=1. With atime=1, the access times will be updated on the files and directories that get backed up.
  • scan_problem_raises_error=[0|1] β€” when enabled, this causes problems in the phase1 scan (such as an include being missing) to be treated as fatal errors. The default is off.

πŸ—‚οΈ SERVER CLIENTCONFDIR FILE πŸ—‚οΈ

So how does the server even know about the clients that are allowed to contact it? Bestie, you place a file named after the client in clientconfdir. That's the vibe.

  • Files beginning with . or ending with ~ are ignored.
  • Directories are also ignored. Bye. πŸšͺ

The file name must match the name in the cname field on the client. Like a matching friendship bracelet but for auth. πŸŽ€

ssl_peer_cn=[string] must match the common name in the SSL certificate that the client gives when it connects. If ssl_peer_cn is not set, the client name will be used instead (the clientconfdir file name).

The file needs to contain a line like password=[password] that matches the same field on the client, or passwd=[hash] β€” where the plain text password on the client will be tested against a hash of the kind you might find in /etc/passwd.

Additionally, the following options can be overridden here for each client (yes, per client, very customizable of you πŸ‘‘):

  • client_can_delete
  • client_can_force_backup
  • client_can_list
  • client_can_monitor
  • client_can_restore
  • client_can_verify
  • client_lockdir
  • compression
  • dedup_group
  • directory
  • directory_tree
  • enabled
  • fail_on_warning
  • hard_quota
  • keep
  • label
  • librsync
  • librsync_max_size
  • manual_delete
  • network_allow
  • network_allow_status
  • notify_failure_arg
  • notify_failure_on_backup_with_failovers_left
  • notify_failure_on_backup_working_dir_deletion
  • notify_failure_script
  • notify_success_arg
  • notify_success_script
  • notify_success_warnings_only
  • password_check
  • path_length_warn
  • rblk_memory_max
  • restore_client
  • server_script_arg
  • server_script
  • server_script_notify
  • server_script_post_arg
  • server_script_post
  • server_script_post_notify
  • server_script_post_run_on_fail
  • server_script_pre_arg
  • server_script_pre
  • server_script_pre_notify
  • soft_quota
  • super_client
  • syslog
  • timer_arg
  • timer_repeat_interval
  • timer_script
  • timestamp_format
  • version_warn
  • working_dir_recovery_method

Additionally, the includes and excludes can be overridden here, as described in the section above. (Yeah, we just talked about them. Go scroll up, bestie. 😌)

And as with the other configuration files, extra configuration can be included with the . path/to/config/file syntax. Chain those configs, it's giving modular. πŸ’…

πŸ’– Some notes on SSL certificates πŸ’–

Okay so the burp example configs come with example SSL certificates and keys. You can use these and burp will work. But if you're worried about network security, bestie, you should generate your own certificates and keys and point your config files to them. To create the example files, the author used a handy interface to openssl called tinyca (http://tinyca.sm-zone.net/). If you're on Debian, you can run apt-get install tinyca to get it. There's also the option of using burp_ca, which you can find in the source distribution, courtesy of Patrick Koppen. πŸŽ€


🌸 Examining backups 🌸

As well as using the client list options described above, you can go directly to the storage directory on the server. The backups for a client are in the directory named after the client. Inside each backup directory is a file called manifest.gz.

This contains a list of all the files in the backup, and where they originally came from on the client.

There's also a log.gz file in the backup directory, which contains the output generated by the server during the backup.

The data directory contains complete backup files.

The deltas.reverse directory contains reverse deltas that can be applied to the data from the next backup in the sequence (indicated by the contents of the forward file).

Anything with a .gz suffix is compressed in zlib (gzip) format. You can use standard tools, such as zcat, zless or cp, to view them or copy them elsewhere. Files from Windows backups will probably contain VSS headers and/or footers. For help stripping these, see the vss_strip man page. πŸ¦‹


πŸŽ€ Server initiated backups πŸŽ€

You can queue a backup on the server, to be performed when the client next makes contact. To do this, you put a file called backup into the top level of the client storage directory. The contents of the file are ignored. πŸ’…


πŸŽ€ Server initiated restores πŸŽ€

You can queue a restore on the server, to be performed when the client next makes contact. To do this, you put a file called restore into the top level of the client storage directory. The client can deny server initiated restores by setting "server_can_restore=0" in its burp.conf. The client also needs to specify 'restoreprefix' in its configuration as a destination for the restored files. Valid fields to include in the restore file are:

  • orig_client=[client] β€” The original client to restore from. Equivalent to -C when initiating a restore from a client. Do not include this line when restoring to the original client. See also the restore_client and super_client server options.
  • backup=[number|a] β€” The number of the backup to restore from. Equivalent to -b when initiating a restore from the client.
  • overwrite=[0|1] β€” Whether to overwrite existing files. Equivalent to -f when initiating a restore from the client.
  • strip=[number] β€” Number of leading path components to strip. Equivalent to -s when initiating a restore from the client.
  • restoreprefix=[path] β€” Appended to the client-side restoreprefix setting, and then prefixed to the restore path.
  • stripfrompath=[string] β€” Strip matching string from restore paths (before prefix is prepended).
  • regex=[regular expression] β€” Only restore files matching the regular expression. Equivalent to -r when initiating a restore from the client.
  • include=[path] β€” Restore directories and files that match the path. If it is a directory, the contents of the directory will be restored. You can have multiple include lines. There is no equivalent when initiating a restore from the client.

🚨 SIGNALS 🚨

Sending signal 1 (HUP) to the main server process will cause it to reload. For the vast majority of configuration changes, a reload is unnecessary as the server will pick up changes "on-the-fly". Sending signal 12 (USR2) to the main server process will cause it to wait until there are no longer any child processes, and then exit. The intention is to help with upgrades without interrupting current backups. if you are running upstart, a new burp server process will start up when the old one exits. πŸ’€


πŸ’― RETURN CODES (SERVER) πŸ’―

  • 0: success
  • 1: error

πŸ’― RETURN CODES (CLIENT) πŸ’―

  • 0: success
  • 1: error
  • 2: restore gave warnings
  • 3: timer conditions on the server were not met
  • 4: could not connect to server
  • 5: max parallel backups reached

πŸ› BUGS πŸ›

If you find bugs, please report them to the email list. See the website http://burp.grke.net/ for details.


πŸ‘‘ AUTHOR πŸ‘‘

The main author of Burp is Graham Keeling.


See the LICENCE file included with the source distribution.


And that's the footer, bestie: Burp, Burp(8) β€” source/version and date as the manpage says. Stay iconic. πŸ’–βœ¨

πŸ“¦ where this page comes from