diff options
author | Micah Anderson <micah@riseup.net> | 2008-06-24 18:57:39 +0000 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2008-06-24 18:57:39 +0000 |
commit | 33ff4f7506fcaab09fd7ad898507f37b7777ba8f (patch) | |
tree | 56b429f5b7dcfd2a1a7cccacacfd4dd46d7012ae /handlers | |
parent | ca12e5617b1c7a600324e2c6437444627720c62c (diff) | |
download | backupninja-33ff4f7506fcaab09fd7ad898507f37b7777ba8f.tar.gz backupninja-33ff4f7506fcaab09fd7ad898507f37b7777ba8f.tar.bz2 |
add the ability to save the debconf package selection states in the sys handler, which aides in restoring installed packages with the right choices made
Diffstat (limited to 'handlers')
-rw-r--r-- | handlers/sys.helper.in | 3 | ||||
-rwxr-xr-x | handlers/sys.in | 43 |
2 files changed, 34 insertions, 12 deletions
diff --git a/handlers/sys.helper.in b/handlers/sys.helper.in index e39e526..d3d99a5 100644 --- a/handlers/sys.helper.in +++ b/handlers/sys.helper.in @@ -3,7 +3,7 @@ HELPERS="$HELPERS sys:general_hardware_and_system_info" sys_wizard() { - require_packages hwinfo + require_packages hwinfo debconf-utils checkBox "new sys action" "check options" \ "packages" "list of all installed packages." on \ "partitions" "the partition table of all disks." on \ @@ -30,6 +30,7 @@ $partitions $sfdisk $hardware # packagesfile = /var/backups/dpkg-selections.txt +# selectionsfile = /var/backups/debconfsel.txt # partitionsfile = /var/backups/partitions.__star__.txt # hardwarefile = /var/backups/hardware.txt diff --git a/handlers/sys.in b/handlers/sys.in index 455234d..2c48883 100755 --- a/handlers/sys.in +++ b/handlers/sys.in @@ -3,18 +3,25 @@ # this handler will save various reports of vital system information. # by default, all the reports are enabled and are saved in /var/backups. # -# (1) a list of all the packages installed and removed. +# (1) a capture of the debconf package selection states. This file +# can be used to restore the answers to debconf questions for +# packages that you will be installing through (2) below. To +# do this, run: "debconf-set-selections < debconfsel.txt" +# +# (2) a list of all the packages installed and removed. # this file can be used to restore the state of installed packages -# by running "dpkg --set-selections < dpkg-selections.txt +# by running "dpkg --set-selections < dpkg-selections.txt and +# then run "apt-get -u dselect-upgrade". If you have the +# debconf-set-selections file from (1), you should restore those first. # -# (2) the partition table of all disks. +# (3) the partition table of all disks. # this partition table can be used to format another disk of # the same size. this can be handy if using software raid and # you have a disk go bad. just replace the disk and partition it # by running "sfdisk /dev/sdb < partitions.sdb.txt" # (MAKE SURE YOU PARTITION THE CORRECT DISK!!!) # -# (3) hardware information. +# (4) hardware information. # write to a text file the important things which hwinfo can gleen. # @@ -46,6 +53,8 @@ then getconf packagesfile $parentdir/dpkg-selections.txt getconf packagemgr `which dpkg` getconf packagemgroptions ' --get-selections *' + getconf selectionsfile $parentir/debconfsel.txt + getconf debconfgetselections `debconf-get-selections` elif [ $os = "redhat" ] then getconf packagesfile $parentdir/rpmpackages.txt @@ -109,13 +118,20 @@ if [ "$packages" == "yes" ]; then # 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 + else + # 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 + fi + # is $debconfgetselections available inside $vserver ? + if [ ! -x "$VROOTDIR/$vserver`$VSERVER $vserver exec which $debconfgetselections`" ]; then + warning "can't find $debconfgetselections in vserver $vserver, skipping package selection states." + else + debug "$VSERVER $vserver exec $debconfgetselections > $VROOTDIR/$vserver$selectionsfile" + $VSERVER $vserver exec $debconfgetselections > $VROOTDIR/$vserver$selectionsfile || fatal "can not save $debconfgetselections info to $selectionsfile" 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 @@ -129,7 +145,12 @@ if [ "$packages" == "yes" ]; then $packagemgr $packagemgroptions > $packagesfile || fatal "can not save $packagemgr info to $packagesfile" set +o noglob fi - + if [ -z "$debconfgetselections" ]; then + warning "can't find ${debconfgetselections}, skilling package selection states." + else + debug "$debconfgetselections > $selectionsfile" + $debconfgetselections > $selectionsfile || fatal "can not save $debconfgetselections info to $selectionsfile" + fi fi ## System report ############################## |