Added trac handler, changed VSERVERS variable to be lowercase and
authorMicah Anderson <micah@riseup.net>
Mon, 13 Jun 2005 19:37:26 +0000 (19:37 +0000)
committerMicah Anderson <micah@riseup.net>
Mon, 13 Jun 2005 19:37:26 +0000 (19:37 +0000)
added some vserver documentation to README and to the handlers

README
etc/backup.d/example.mysql
etc/backup.d/example.rdiff
etc/backupninja.conf
handlers/mysql
handlers/rdiff
handlers/svn
handlers/sys
handlers/trac [new file with mode: 0644]

diff --git a/README b/README
index f50f127561eb5634814b79c87bf489a7587d5398..b6483bd9f3312c91e4a50941554d924c0d7631ea 100644 (file)
--- a/README
+++ b/README
@@ -23,7 +23,7 @@ Features:
  - 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
@@ -194,3 +194,21 @@ Installation:
   # 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`)
+
index e0559fe8bdac8e57c78d59ba9fb4951528674ff2..51c2247717f53a800274b8df780331fce6f00e77 100644 (file)
@@ -70,4 +70,6 @@ compress    = yes
 # 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.
index 1fe31bba134160134eba828b970443209fa3cfa8..bd16c3c6307741831124a0b8a163e207b2a37174 100644 (file)
@@ -41,6 +41,17 @@ include = /usr/local/sbin
 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
index 97af0628a6c063e31fdc0647e1d4bf45bea488fc..6fe2708b4ad749d5425c026e6ae4aad756549993 100644 (file)
@@ -45,5 +45,5 @@ usecolors = yes
 when = everyday at 01:00
 
 # if running vservers, set to yes
-VSERVERS = no
+vservers = no
 
index a4a1497d35195acce702b887d0a1b4c266d855ba..d5c0370e733c9252c217e574cfd0c1a2af0fea89 100644 (file)
@@ -28,7 +28,7 @@ fi
 # 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            
index ca97fa4da760d51447617236d0a713623d6b0ed4..713f4c6e53732fed9fd85de78c6644d5b6cf44dd 100644 (file)
@@ -26,7 +26,7 @@ getconf user; destuser=$user
 getconf host; desthost=$host
 
 # See if vservers are configured
-if [ "$VSERVERS" = "yes" ]
+if [ "$vservers" = "yes" ]
 then
        if [ ! -d $VROOTDIR ]
        then
index cd3cc2e99983350fba18a5436d53e2169a938c18..551255b943038d6226b95a97f6735a3b978541f5 100644 (file)
@@ -12,7 +12,7 @@ error=0
 
 # 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            
index f111097ebb2698980c08447fed4ebacc668432b0..9b836a7efce3ce43191c51f5e6dba05f6dfe6c80 100755 (executable)
@@ -27,7 +27,7 @@ getconf hardware yes
 getconf hardwarefile /var/backups/hardware.txt
 
 # See if vservers are configured
-if [ "$VSERVERS" = "yes" ]
+if [ "$vservers" = "yes" ]
 then
        if [ ! -d $VROOTDIR ]
        then
diff --git a/handlers/trac b/handlers/trac
new file mode 100644 (file)
index 0000000..d344082
--- /dev/null
@@ -0,0 +1,51 @@
+#
+# 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