fi
getconf packages yes
+getconf dosfdisk yes
+getconf dohwinfo yes
if [ $os = "debian" ]
then
getconf packagesfile /var/backups/dpkg-selections.txt
getconf packagemgr `which dpkg`
- getconf packagemgroptions " --get-selections"
+ getconf packagemgroptions ' --get-selections *'
elif [ $os = "redhat" ]
then
getconf packagesfile /var/backups/rpmpackages.txt
getconf packagemgr `which rpm`
- getconf packagemgroptions " -qa "
+ getconf packagemgroptions ' -qa '
getconf SYSREPORT `which sysreport`
- getconf sysreport_options " -norpm "
+ getconf sysreport_options ' -norpm '
else
getconf packagesfile /var/backups/unknownOS.txt
fi
+packagemgroptions="${packagemgroptions//__star__/*}"
getconf partitions yes
getconf partitionsfile /var/backups/partitions.__star__.txt
#
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
- warning "vserver $vserver is not running, skipping installed packages report."
- 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"
$VSERVER $vserver exec $packagemgr $packagemgroptions > $VROOTDIR/$vserver$packagesfile || fatal "can not save $packagemgr info to $packagesfile"
+ set +o noglob
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 ##############################
echo "Level: $level" >> $sysreportfile
for f in /etc/rc${level}.d/*; do
# Remove /etc/Knn or Snn from beginning
- ff=$(echo $f | sed 's_/etc/rc..d/[KS][0-9][0-9]__')
+ ff=$(echo $f | @SED@ 's_/etc/rc..d/[KS][0-9][0-9]__')
if [ $f != $ff ]; then
echo $ff >> $sysreportfile
fi
STATUS="Gathering information about your partitions:"
catiffile "/proc/partitions"
-STATUS="Gathering information about your ksysms:"
+STATUS="Gathering information about your ksyms:"
catiffile "/proc/ksyms"
STATUS="Gathering information about slabinfo:"
fi
if [ "$partitions" == "yes" ]; then
+ if [ "$dosfdisk" == "yes" ]; then
if [ ! -x "$SFDISK" ]; then
warning "can't find sfdisk, skipping sfdisk report."
partitions="no"
fi
+ fi
+ if [ "$dohwinfo" == "yes" ]; then
if [ ! -x "$HWINFO" ]; then
warning "can't find hwinfo, skipping partition report."
partitions="no"
fi
+ fi
fi
if [ "$hardware" == "yes" ]; then
fi
fi
+## HARDWARE #############################
+
+#
+# here we use hwinfo to dump a table listing all the
+# information we can find on the hardware of this machine
+#
+
+if [ "$hardware" == "yes" ]; then
+ if [ "dohwinfo" == "yes" ]; then
+ if [ -f $hardwarefile ]; then
+ rm $hardwarefile
+ fi
+ touch $hardwarefile
+ echo -e "\n\n====================== summary ======================\n" >> $hardwarefile
+ debug "$HWINFO --short --cpu --network --disk --pci >> $hardwarefile"
+ $HWINFO --short --cpu --network --disk --pci >> $hardwarefile
+ for flag in cpu network bios pci; do
+ echo -e "\n\n====================== $flag ======================\n" >> $hardwarefile
+ $HWINFO --$flag >> $hardwarefile
+ done
+ fi
+fi
+
## PARTITIONS #############################
# these files can be used to directly partition a disk of the same size.
if [ "$partitions" == "yes" ]; then
- devices=`$SFDISK -l | grep "^Disk /dev" | cut -d/ -f2,3 | cut -d: -f1`
+ if [ "$dosfdisk" == "yes" ]; then
+ devices=`$SFDISK -l 2>/dev/null | grep "^Disk /dev" | @AWK@ '{print $2}' | cut -d: -f1`
if [ "$devices" == "" ]; then
warning "No harddisks found"
fi
for dev in $devices; do
+ debug "$SFDISK will try to backup partition tables for device $dev"
[ -b $dev ] || continue
label=${dev#/dev/}
label=${label//\//-}
outputfile=${partitionsfile//__star__/$label}
- debug "$SFDISK $sfdisk_options -d /$dev > $outputfile"
- $SFDISK $sfdisk_options -d /$dev > $outputfile
- done
-fi
-
-## HARDWARE #############################
-
-#
-# here we use hwinfo to dump a table listing all the
-# information we can find on the hardware of this machine
-#
-
-if [ "$hardware" == "yes" ]; then
- if [ -f $hardwarefile ]; then
- rm $hardwarefile
- fi
- touch $hardwarefile
- echo -e "\n\n====================== summary ======================\n" >> $hardwarefile
- debug "$HWINFO --short --cpu --network --disk --pci >> $hardwarefile"
- $HWINFO --short --cpu --network --disk --pci >> $hardwarefile
- for flag in cpu network disk bios pci; do
- echo -e "\n\n====================== $flag ======================\n" >> $hardwarefile
- $HWINFO --$flag >> $hardwarefile
+ debug "$SFDISK $sfdisk_options -d $dev > $outputfile 2>/dev/null"
+ $SFDISK $sfdisk_options -d $dev > $outputfile 2>/dev/null
+ if [ $? -ne 0 ]; then
+ warning "The partition table for $dev could not be saved."
+ fi
done
+ fi
+ if [ "$dohwinfo" == "yes" ]; then
+ debug "Using $HWINFO to get all available disk information"
+ echo -e "\n\n====================== $disk ======================\n" >> $hardwarefile
+ $HWINFO --disk >> $hardwarefile
+ fi
fi