aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2006-10-28 19:19:55 +0000
committerintrigeri <intrigeri@boum.org>2006-10-28 19:19:55 +0000
commit56c992661cec11bc5caf9511ba1e1d6384cebaa7 (patch)
treea2db2d9167b6ab95686850f32d03beb5ffd6e465
parent5eef842c2b297ded85d4f9e312f806f9c61153fb (diff)
downloadbackupninja-56c992661cec11bc5caf9511ba1e1d6384cebaa7.tar.gz
backupninja-56c992661cec11bc5caf9511ba1e1d6384cebaa7.tar.bz2
sys: fix bug when vrootdir is on its own partition
-rw-r--r--ChangeLog1
-rwxr-xr-xhandlers/sys52
2 files changed, 21 insertions, 32 deletions
diff --git a/ChangeLog b/ChangeLog
index 47281e4..245fc62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@ version 0.9.5 -- unreleased
handler changes
sys:
. Fixed typo breaking things for VServers.
+ . Fix bug when vrootdir is on its own partition.
fixed automake 'make install' bug that failed if /etc/backup.d already
existed
diff --git a/handlers/sys b/handlers/sys
index 6ae736d..677d5ee 100755
--- a/handlers/sys
+++ b/handlers/sys
@@ -80,37 +80,22 @@ fi
#
if [ "$packages" == "yes" ]; then
- if [ $usevserver = yes ]
- then
- nodpkg="lost+found|ARCHIVES"
- info "vserver root directory set to: $VROOTDIR"
- for vserver in $found_vservers
- do
- info "examining vserver: $vserver"
- running=`$VSERVERINFO $vserver RUNNING`
- if [ "$running" = "1" ]; then
- if [ ! -x "$VROOTDIR/$vserver`$VSERVER $vserver exec which $packagemgr`" ]; then
- warning "can't find $packagemgr in vserver $vserver, skipping installed packages report."
- nodpkg="$nodpkg|$vserver"
- fi
- else
- nodpkg="$nodpkg|$vserver"
- fi
-
- done
- else
- if [ -z "$packagemgr" -o ! -x "$packagemgr" ]; then
- warning "can't find ${packagemgr}, skipping installed packages report."
- packages="no"
- fi
- fi
-fi
-if [ "$packages" == "yes" ]; then
- if [ $usevserver = yes ]
- then
- for vserver in `ls $VROOTDIR | grep -E -v $nodpkg`
- do
+ if [ $usevserver = yes ]; then
+ info "vserver root directory set to: $VROOTDIR"
+ for vserver in $found_vservers; do
+ info "examining vserver: $vserver"
+ # is it running ?
+ $VSERVERINFO -q $vserver RUNNING
+ if [ $? -ne 0 ]; then
+ warning "The vserver $vserver is not running."
+ continue
+ fi
+ # is $packagemgr available inside $vserver ?
+ if [ ! -x "$VROOTDIR/$vserver`$VSERVER $vserver exec which $packagemgr`" ]; then
+ warning "can't find $packagemgr in vserver $vserver, skipping installed packages report."
+ continue
+ fi
# don't expand * since it can be used in $packagemgroptions
set -o noglob
debug "$VSERVER $vserver exec $packagemgr $packagemgroptions > $VROOTDIR/$vserver$packagesfile"
@@ -119,14 +104,17 @@ if [ "$packages" == "yes" ]; then
done
fi
-# We want to perform this on the host as well
- if [ "$packages" == "yes" ]; then
+ # We want to perform this on the host as well
+ if [ -z "$packagemgr" -o ! -x "$packagemgr" ]; then
+ warning "can't find ${packagemgr}, skipping installed packages report."
+ else
# don't expand * since it can be used in $packagemgroptions
set -o noglob
debug "$packagemgr $packagemgroptions > $packagesfile"
$packagemgr $packagemgroptions > $packagesfile || fatal "can not save $packagemgr info to $packagesfile"
set +o noglob
fi
+
fi
## System report ##############################