From fd6796ad99b90371594c3068e6d8bbbdb2b1d1d5 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Tue, 24 Jun 2008 16:05:44 +0000 Subject: [PATCH] sys: support selection of VServers to run on with the new vsnames configuration option (Closes: Trac#45) --- ChangeLog | 5 +++-- examples/example.sys | 3 +++ handlers/sys.helper.in | 4 ++++ handlers/sys.in | 17 ++++++++++++----- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 09c4747..d9a6906 100644 --- a/ChangeLog +++ b/ChangeLog @@ -35,12 +35,13 @@ version 0.9.6 -- unreleased . make deleted maildirs record the date they were deleted . add destid_file configuration option to enable you to specify an alternate ssh public key authentication file (defaulting to /root/.ssh/id_rsa) - pgsql, mysql, svn: + pgsql, mysql, svn, sys: . use new vservers_running function from lib/vserver (factorization++) sys: . update for 2.6 kernels: use /proc/kallsyms instead of /proc/ksyms (Closes: Trac#39) - . use new vservers_running function from lib/vserver + . support selection of VServers to run on, in the same way as in the + dup handler, with the new vsnames configuration option ; (Closes: Trac#45) version 0.9.5 -- December 2, 2007 backupninja changes diff --git a/examples/example.sys b/examples/example.sys index 9081334..2a6bf0f 100644 --- a/examples/example.sys +++ b/examples/example.sys @@ -39,3 +39,6 @@ # hardwarefile = /var/backups/hardware.txt # dohwinfo = yes +# If vservers = yes in /etc/backupninja.conf then the following variables can +# be used: +# vsnames = all | ... (default = all) diff --git a/handlers/sys.helper.in b/handlers/sys.helper.in index 6451ae2..e39e526 100644 --- a/handlers/sys.helper.in +++ b/handlers/sys.helper.in @@ -32,6 +32,10 @@ $hardware # packagesfile = /var/backups/dpkg-selections.txt # partitionsfile = /var/backups/partitions.__star__.txt # hardwarefile = /var/backups/hardware.txt + +# If vservers = yes in /etc/backupninja.conf then the following variables can +# be used: +# vsnames = all | ... (default = all) EOF chmod 600 $next_filename } diff --git a/handlers/sys.in b/handlers/sys.in index 0f863d7..455234d 100755 --- a/handlers/sys.in +++ b/handlers/sys.in @@ -73,11 +73,18 @@ getconf HWINFO `which hwinfo` getconf sfdisk_options "" getconf hwinfo_options "" -# See if vservers are configured +getconf vsnames all + +# If vservers are configured, check that the ones listed in $vsnames are running. local usevserver=no -if [ $vservers_are_available = yes ] -then - info "vserver method enabled" +if [ $vservers_are_available = yes ]; then + if [ "$vsnames" = all ]; then + vsnames="$found_vservers" + fi + if ! vservers_running "$vsnames" ; then + fatal "At least one of the vservers listed in vsnames ($vsnames) is not running." + fi + info "Using vservers '$vsnames'" usevserver=yes fi @@ -91,7 +98,7 @@ if [ "$packages" == "yes" ]; then if [ $usevserver = yes ]; then info "vserver root directory set to: $VROOTDIR" - for vserver in $found_vservers; do + for vserver in $vsnames; do info "examining vserver: $vserver" # is it running ? vservers_running $vserver -- 2.30.2