# # 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. # this file can be used to restore the state of installed packages # by running "dpkg --set-selections < dpkg-selections.txt # # (2) 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. # write to a text file the important things which hwinfo can discover. # getconf packages yes getconf packagesfile /var/backups/dpkg-selections.txt getconf partitions yes getconf partitionsfile '/var/backups/partitions.*.txt' getconf hardware yes getconf hardwarefile /var/backups/hardware.txt if [ "$packages" == "yes" ]; then if [ ! -x "`which dpkg`" ]; then warning "can't find dpkg, skipping installed packages report." packages="no" fi fi if [ "$partitions" == "yes" ]; then if [ ! -x "`which sfdisk`" ]; then warning "can't find sfdisk, skipping partition report." partitions="no" fi if [ ! -x "`which hwinfo`" ]; then warning "can't find hwinfo, skipping partition report." partitions="no" fi fi if [ "$hardware" == "yes" ]; then if [ ! -x "`which hwinfo`" ]; then warning "can't find hwinfo, skipping hardware report." hardware="no" fi fi ## PACKAGES ############################## # # here we grab a list of the packages installed and removed. # if [ "$packages" == "yes" ]; then dpkg --get-selections > $packagesfile fi ## PARTITIONS ############################# # here we use sfdisk to dump a listing of all the partitions. # these files can be used to directly partition a disk of the same size. if [ "$partitions" == "yes" ]; then devices=`hwinfo --disk | grep "Device File" | cut -d\ -f5` for dev in $devices; do [ -b $dev ] || continue label=${dev#/dev/} label=${label//\//-} outputfile=${partitionsfile//__star__/$label} debug "sfdisk -d $dev > $outputfile" sfdisk -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 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 done fi