- backup actions can be scheduled
- you can choose when status report emails are mailed to you
(always, on warning, on error, never).
- - works with linux-vservers
+ - works with Linux-Vservers (http://linux-vserver.org/)
The following options are available:
-h, --help This usage message
# 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`)
+
# vsname = <vserver> (no default)
# what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf
# if you do not specify a vsname the host will be operated on
-
+#
+# NB: databases = all doesn't seem to work with hotcopy = yes when vsname is specified
+# I would like to know how to fix this.
include = /var/lib/dpkg/status
include = /var/lib/dpkg/status-old
+# If vservers = yes in /etc/backupninja.conf then the following variable can be used:
+# vsinclude = <path>
+# Any path specified in vsinclude is added to the include list for each vserver
+# on the system.
+# e.g. vsinclude = /home will backup the /home partition in every vserver
+# on the system. If you have /vservers/foo, /vservers/bar and /vservers/baz
+# this vsinclude will add to the include list /vservers/foo/home,
+# /vservers/bar/home and /vservers/baz/home
+# Included vservers are derived from listing all vservers in $VROOTDIR (suggestions
+# for improving this are encouraged).
+
# files to exclude from the backup
# (supports globbing with '*')
#exclude = /home/*/.gnupg
when = everyday at 01:00
# if running vservers, set to yes
-VSERVERS = no
+vservers = no
# If vservers are configured, decide if the handler should
# use them or if it should just operate on the host
-if [ "$VSERVERS" = "yes" ]
+if [ "$vservers" = "yes" ]
then
if [ ! -z $vsname ]
then
getconf host; desthost=$host
# See if vservers are configured
-if [ "$VSERVERS" = "yes" ]
+if [ "$vservers" = "yes" ]
then
if [ ! -d $VROOTDIR ]
then
# If vservers are configured, decide if the handler should
# use them or if it should just operate on the host
-if [ "$VSERVERS" = "yes" ]
+if [ "$vservers" = "yes" ]
then
if [ ! -z $vsname ]
then
getconf hardwarefile /var/backups/hardware.txt
# See if vservers are configured
-if [ "$VSERVERS" = "yes" ]
+if [ "$vservers" = "yes" ]
then
if [ ! -d $VROOTDIR ]
then
--- /dev/null
+#
+# this handler will backup trac environments (based on the svn handler)
+#
+# http://trac.edgewall.com/
+#
+
+getconf src /var/lib/trac
+getconf dest /var/backups/trac
+getconf tmp /var/backups/trac.tmp
+
+error=0
+cd $src
+for repo in `find . -name VERSION`
+do
+ repo=`dirname $repo`
+
+ # Just make the $tmp dir, not $tmp/$repo
+ ret=`mkdir -p $tmp 2>&1`
+ code=$?
+ if [ "$ret" ]; then
+ debug "$ret"
+ fi
+ if [ $code != 0 ]; then
+ error "command failed mkdir -p $tmp"
+ fi
+
+ ret=`trac-admin $src/$repo hotcopy $tmp/$repo 2>&1`
+ code=$?
+ if [ "$ret" ]; then
+ debug "$ret"
+ fi
+ if [ $code != 0 ]; then
+ error "command failed -- trac-admin $src/$repo hotcopy $tmp/$repo"
+ error=1
+ fi
+done
+
+if [ $error -eq 1 ]; then
+ echo "Error: because of earlier errors, we are leaving trac backups in $tmp instead of $dest"
+else
+ if [ -d $dest -a -d $tmp ]; then
+ rm -rf $dest
+ fi
+ if [ -d $tmp ]; then
+ mv $tmp $dest
+ fi
+fi
+
+exit 0
+
+# vim: filetype=sh