vbackup(8) A modular backup program


vbackup [OPTIONS] [ --check ] [strategy] level
vbackup [OPTIONS] { --list | --help [module] | --version | --init }
vbackup [OPTIONS] --rc --list [strategy] [level]
vbackup [OPTIONS] --rc --init strategy
vbackup [OPTIONS] --rc { --add | --delete } [strategy] config
vbackup [OPTIONS] --rc { --enable | --disable } [strategy] config


vbackup is a program that performs system backups. The backup strategy is specified with a set of minimal configuration files that exist in directories under /etc/vbackup. See the quickstart section for quick first-time setup.

The full documentation of vbackup is available online at http://vbackup.readthedocs.org


-d <level>
Set the message level to <level> (default level is 8): 1: Fatal, 2: Error, 3: Warning, 4: Note, 5-7: Information (5: Rare messages, 6: Useful message, 7: Not so useful), 10-14: Debug messages that don't flood, 15-19: Debug messages that flood
--dir <directory>
Set the configuration directory. This is only useful in case you want to implement (e.g.) user backups, so each user may have her own configuration directory.


In all commands below: <strategy> refers to the name of a backup strategy (e.g. test, remote, etc). <level> refers to the backup level that is to be performed. <config> refers to a configuration file name and it is in the form XX-NAME.TYPE or XX-NAME-LEVEL.TYPE, where XX is a number indicating a priority, NAME is an arbitrary name, LEVEL is an optional backup level (0-9) and TYPE is the corresponding module name (e.g. xfsdump) (example: 50-home.xfsdump, 20-mbr-0.mbr, 10-remote.nfsmount, etc). <module> refers to a module name (e.g. xfsdump)
--check [<strategy>] [<level>]
Check configuration files for a specific backup strategy. Each module checks its own configuration file. If strategy is omitted then the default strategy will be checked. If level is provided then only config files that apply to that level will be checked.
List all available modules, their version and a brief description.
--help [<module>]
Show some help. If a module is passed as argument then it will display some help about that module. This is where the module configuration parameters are shown.
Guess what...
Shortcut for --rc --init.
--rc --list [<stategy>] [<level>]
List the configuration of a certain backup strategy. If level is specified then only list configuration that applies to that level. If strategy is omitted the look for the default strategy. This similar to looking at the directories with ls.
--rc --init <strategy>
Create/initialize a new backup strategy. It will ask a couple of questions and then it will create the directory and populate it with a vbackup.conf file based on the answers.
--rc --add [<strategy>] <config>
Add a new configuration file to a certain backup strategy (or to the default). config is the file name and must be in the form XX-NAME.TYPE or XX-NAME-LEVEL.TYPE, as described above.
--rc --delete [<strategy>] <config>
Delete an existing configuration file from a strategy.
--rc --enable [<strategy>] <config>
Enable a previously disabled configuration file by removing the .off extension.
--rc --disable [<strategy>] <config>
Disable a configuration file for a backup strategy by appending the .off extension.


Use the vbackup-wizard(8) for quickstarting. Most probably that's what you will do the first time.


The backup strategy is specified with a set of minimal configuration files that exist in directories under /etc/vbackup. Each directory is named rc.XXXXX.d where XXXXX is the name of the backup strategy. There's also the default strategy that's using the directory rc.d.

For most setups the default strategy should suffice.

Each strategy must contain a vbackup.conf file that specifies some global configuration options (like a destination directory). Next, it must contain one or more module configuration files. The available modules can be seen using the --list parameter. The files in there are in the form XX-NAME.TYPE or XX-NAME-LEVEL.TYPE, where XX is a number indicating order, NAME is an arbitrary name, LEVEL is an optional level and TYPE is the name of the module that will be invoked. If LEVEL is specified then this config file will only apply to that LEVEL.


After having defined at least one strategy you can perform that backup by running "vbackup <level>" or "vbackup <strategy> <level>". This will first source the vbackup.conf and it will then check for existing configuration files. For each one that is found, it will determine the appropriate backup module and run it.


Backup the debian package list. Small space requirement and very useful for restoring a debian system.
Execute shell commands. Allows custom things to happen between steps (e.g. creating a tar of the whole backup directory or removing old backups).
Check whether a file or directory exists. This can be used to determine whether a filesystem is actually mounted or not. It is strongly advised to use this when you're not using mount or nfsmount!
Encrypt a file or a directory using with GPG using a symmetric key. It can be used to encrypt the whole backup before uploading the results to a remote system.
Use tar to backup a filesystem but use find to locate the files to backup. This is similar to the tar method but is not that good for incremental backups. If you restore a system that was incrementally backed up using this method it will have all files that were deleted between intermediate backups too. The advantage of this method is that you can use regular expressions to filter files that will be backed up.
Backup MBRs from all disks and their Partition Tables. It will also backup MD and LVM information if any of those is detected. Extremely useful with very low space requirements.
Calculate the md5sum of certain files. Can be used to store checksums of the backed up files in order to be able to verify that they are not corrupted. If can also be used to store checksums of system files.
Mount a local filesystem, in case you have an unmounted filesystem to perform backups (for example a spare or external disk).
Backup some or all MySQL databases.
Mount a remote filesystem using NFS.
Don't do anything at all. Used for disabling configuration files. For example, if you rename 50-main.pgsql to 50-main.pgsql.off it will remain in the configuration directory by will be disabled.
Backup OpenLDAP database and configuration (if it's stored in LDAP).
Backup some or all PostgreSQL databases.
Remove a directory recursively. Useful when storing the backup to a temporary directory before (e.g.) moving it to another system or compressing it. It can be used to cleanup the directory tree, both before and after a backup.
Backup RPM database.
Copy files to a remote system using scp. It will copy directories recursively so it can be used to copy a full backup.
Perform incremental backups using the listed-incremental format of GNU tar. Make sure to use the --noplugin parameter when editing tar configuration files with vim.
Umount a filesystem that was previously mounted. This can be used for local and remote mounts. The configuration of this module is compatible with the configuration of mount and nfsmount modules. This means that you can just create a link to the coresponding mount configuration file to have it unount the filesystem. (For example, link 00-remote.nfsmount to 99-remount.umount)
Encrypt a file or a directory using an x509 certificate. This way backups can be safely stored in remote systems.
Perform incremental backups using xfsdump. This is by far the very best way to backup an XFS filesystem (as a whole). It works extremely well, it is very reliable and it is able to do live backups. It is also very easy to restore all or part of the backed-up data using the interactive xfsrestore utility (xfsrestore -i).


You can extend vbackup by writing simple scripts that will be combined with other scripts. See the online documentation for more information.


vbackup is written and maintained by Stefanos Harhalakis. Copyright (c) 2006-2016 Harhalakis Stefanos


For bugs, requests, ideas, comments and anything else (except spam) contact <[email protected]>


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

If GPLv3 doesn't fit your needs (BSD?) feel free to contact me and I may release it with another license too.