backupninja - Man Page


BACKUPNINJA — A lightweight, extensible meta-backup system
"a silent flower blossom death strike to lost data."


backupninja [ -h ] [ -v ] [ -d ] [ -n ] [ -t ] [ -f filename ] [ --run filename ]


Backupninja allows you to coordinate system backups by dropping a few simple configuration files into /etc/backup.d/. Most programs you might use for making backups don't have their own configuration file format. Backupninja provides a centralized way to configure and coordinate many different backup utilities.



-h,  --help

Show summary of options

-V,  --version

Show backupninja version number

-d,  --debug

Run in debug mode, where all log messages are output to the current shell.

-f,  --conffile CONF_FILE

Use CONF_FILE for the main configuration instead of /etc/backupninja.conf

-t,  --test

Run in test mode, no actions are actually taken.

-n,  --now

Perform actions now, instead of when they might be scheduled.


Runs the action configuration ACTION_FILE and exits.


General settings are configured in /etc/backupninja.conf. In this file you can set the log level and change the default directory locations. See backupninja.conf(5).

To preform the actual backup actions, backupninja processes each action configuration file in /etc/backup.d according to the file's suffix. See backup.d(5).

Example Usage

Backupninja can be used to implement whatever backup strategy you choose. It is intended, however, to be used like so:
First, databases are safely copied or exported to /var/backups.  Often, you cannot make a file backup of a database while it is in use, hence the need to use special tools to make a safe copy or export into /var/backups.
Then, vital parts of the file system, including /var/backups, are nightly pushed to a remote, off-site, hard disk (using rdiff-backup). The local user is root, but the remote user is not privileged. Hopefully, the remote filesystem is encrypted.
In order for this to work (ie for diff-backup to run unattended), you must create ssh keys on the source server and copy the public key to the remote user's authorized keys file. For example:

root@srchost# ssh-keygen -t rsa -b 4096
root@srchost# ssh-copy-id -i /root/.ssh/ backup@desthost

Now, you should be able to ssh from user 'root' on srchost to user 'backup' on desthost without specifying a password. When prompted for a password by ssh-keygen, just leave it blank by hitting return. The "wizard" ninjahelper(1) will walk you through these steps.

Exit Values

0        success
1        errors or warnings emitted during backup
2        one or more backup actions failed
3        syntax or usage error


/usr/sbin/backupninja        main script
/etc/backupninja.conf        main configuration file; general options
/etc/cron.d/backupninja      runs main script hourly
/etc/logrotate.d/backupninja rotates backupninja.log
/etc/backup.d                directory for configuration files
/usr/share/backupninja       directory for handler scripts
/usr/share/doc/backupninja/examples       example action configuration files.

See Also

ninjahelper(1), backupninja.conf(5), backup.d(5),


BACKUPNINJA was written by the collective.

Referenced By

backup.d(5), backupninja.conf(5), ninjahelper(1).

October 10, 2005 riseup backupninja package