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.
- -
- easy to read ini style configuration files.
- -
- you can drop in scripts to handle new types of backups.
- -
- backup actions can be scheduled.
- -
- you can choose when status report emails are mailed to you (always, on
warning, on error, never).
- -
- console-based wizard (ninjahelper) makes it easy to create backup action
configuration files.
- -
- passwords are never sent via the command line to helper programs.
- -
- in order to backup a db or sql database, you cannot simply copy database
files. backupninja helps you safely export the data to a format which you
can backup.
Backup types include:
- -
- secure, remote, incremental filesystem backup (via rdiff-backup).
incremental data is compressed. permissions are retained even with an
unpriviledged backup user.
- -
- basic system and hardware information.
- -
- encrypted remote backups (via duplicity).
- -
- safe backup of MySQL, PostgreSQL, OpenLDAP, and subversion databases.
- -
- burn CD/DVDs or create ISOs.
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).
- 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/id_dsa.pub 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.
-
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.
BACKUPNINJA was written by the riseup.net collective.