Features:
- easy to read ini style configuration files.
- - secure, remote, incremental filesytem backup (via rdiff-backup).
- incremental data is compressed. permissions are retained even
- with an unpriviledged backup user.
- - backup of mysql databases (via mysqlhotcopy and mysqldump).
- - backup of ldap databases (via slapcat and ldapsearch).
- - passwords are never sent via the command line to helper programs.
- 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.
+ - works with Linux-Vservers (http://linux-vserver.org/)
+Backup types:
+ - secure, remote, incremental filesytem backup (via rdiff-backup).
+ incremental data is compressed. permissions are retained even
+ with an unpriviledged backup user.
+ - backup of mysql databases (via mysqlhotcopy and mysqldump).
+ - backup of ldap databases (via slapcat and ldapsearch).
+ - basic system and hardware info
+ - encrypted remote backups (via duplicity).
+ - backup of subversion repositories.
+
The following options are available:
-h, --help This usage message
-d, --debug Run in debug mode, where all log messages are
output to the current shell.
-f, --conffile FILE Use 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.
---run FILE runs the specified action FILE (e.g. one of the /etc/backup.d/ files)
+-t, --test Test run mode. This will test if the backup could run, without actually
+ preforming any backups. For example, it will attempt to authenticate
+ or test that ssh keys are set correctly.
+-n, --now Perform actions now, instead of when they might be scheduled.
+ No output will be created unless also run with -d.
+--run FILE Runs the specified action FILE (e.g. one of the /etc/backup.d/ files).
+ Also puts backupninja in debug mode.
CONFIGURATION FILES
===================
.sh -- run this file as a shell script.
.rdiff -- this is a configuration for rdiff-backup
.maildir -- this is a configuration to backup maildirs
+ .dup -- this is a configuration for duplicity
.mysql -- mysql backup configuration
.ldap -- ldap backup configuration
.sys -- general system reports
+ .svn -- subversion repository backups
Support for additional configuration types can be added by dropping
bash scripts with the name of the suffix into /usr/share/backupninja.
apt-get install bash gawk
Recommended:
- apt-get install rdiff-backup gzip
-
-Suggested:
- apt-get install discover
+ apt-get install rdiff-backup gzip hwinfo
Files:
/usr/sbin/backupninja -- main script
# mkdir /etc/backup.d/
# mv etc/backupninja.conf /etc/backupninja.conf
# mv handlers /usr/share/backupninja
+
+
+VSERVERS
+========
+
+If you are using Linux-Vservers (http://linux-vserver.org/) there are some
+special capabilities that different handlers have to make vserver backups easier.
+Set the variable "vservers" to be "yes" in /etc/backupninja.conf and see the
+example configuration files for each handler to configure the vserver specific
+variables.
+
+Additional vserver variables that can be configured in /etc/backupninja.conf. but
+probably don't need to be changed:
+
+VSERVERINFO (default: /usr/sbin/vserver-info)
+VSERVER (default: /usr/sbin/vserver)
+VROOTDIR (default: `$VSERVERINFO info SYSINFO |grep vserver-Rootdir | awk '{print $2}'; fi`)
+
+NINJAHELPER
+===========
+
+Ninjahelper is an additional script which will walk you through the process of
+configuring backupninja. Ninjahelper has a menu driven curses based interface
+(using dialog).
+
+To add an additional 'wizard' to ninjahelper, follow these steps:
+
+(1) to add a helper for the handler "blue", create the file
+ blue.helper in the directory where the handlers live.
+ (ie /usr/share/backupninja).
+
+(2) next, you need to add your helper to the global HELPERS variable
+ and define the main function for your helper (the function name
+ is always <helper>_wizard). for example, blue.helper:
+ HELPERS="$HELPERS blue:description_of_this_helper
+ blue_wizard() {
+ ... do work here ...
+ }
+
+(3) check the examples of the included helpers to see how they are
+ written. The dialog functions are defined in easydialog.sh.
+