: # Script to poke around on system # The ouput file will be stored in in /tmp # June 95 - Combined Unix/Xenix version # October 95 - Look for disabled options in /etc/rc2.d # Dec 96 - Check vet system version, PPP dialers & 5.0.4 support # Jan 98 - Added divvy and customquery # Feb 98 - Look at fifo setting on com1/2 # May 98 - added p5speed # July 98 - added Visionfs and bootptab # Oct 99 - Use JPR savefiles to grab info # Nov 99 - added network Printers, Vet system printers #exec 2>/dev/null Version="1.16" PATH="/usr/bin:/bin:/usr/local/bin:/etc" ; export PATH if [ -f /usr/utilities/IaM ] then IAM=`cat /usr/utilities/IaM` else IAM=`uuname -l` fi # Who to send mail to? MAILIT="root@bdsl.com" # In case you have uucp mail working and need to route via other # machines - add in here e.g. case $IAM in seward) MAILIT="foster!bdsedin" ;; midport) MAILIT="midsum!bdsedin" ;; ivyport) MAILIT="ivymain!bdsedin" ;; wpback) MAILIT="upmin!bdsedin" ;; testbox) MAILIT="xanth!bdsedin" ;; ccback) MAILIT="ccmain!bdsedin" ;; nlands1) MAILIT="nlands!bdsedin" ;; esac file=/tmp/cnf.$IAM # Where to stick the output list_it() { if [ -r $f ] then ( echo "Contents of $f : " tail $f echo "\n" ) >>$file fi } head_it() { if [ -r $f ] then ( echo "Top of $f : " head $f echo "\n" ) >>$file fi } tail_it() { if [ -r $f ] then ( echo "Bottom of $f : " tail $f echo "\n" ) >>$file fi } cat_it() { if [ -r $f ] then #show $f ( echo "Contents of $f : " cat $f | sed ' /^#.*/d /^;.*/d /^$/d' echo "\n" ) >>$file fi } # Prompt for yes or no answer - returns non-zero for no getyn() { while echo "$* (y/n) \c">&2 do read yn rest case $yn in [yY]) return 0 ;; [nN]) return 1 ;; *) echo "Please answer y or n" >&2 ;; esac done } show() { [ "$BACK" = "NO" ] && echo $* } send_it () { cat $file | mail -s "Config for $IAM" ${MAILIT} } # Lets do a simple test to see if batch processed XX=`tty` [ "$XX" = "not a tty" ] && BACK="YES" || BACK="NO" # Is the user sufficiently powerful ( root ) case `id` in *root*) ;; # root "") ;; # single user *) # someone else echo "This program must be run by the superuser (root) " exit 1 ;; esac echo "SYSTEM CONFIGURATION On : `date`" >$file echo "Version: " $Version >> $file head -1 /etc/systemid >>$file echo $IAM >>$file show "O.S. Conf." { echo "\nO.S. set-up" case `uname -r` in 2.3.4|3.2) uname -X ;; *) uname -a ;; esac } >>$file show "Checking disk usage" { echo "\nDisk usage" echo "---- -----\n" df -v } >>$file [ -s /unix ] && xx="/etc/dfspace" || xx="/usr/utilities/xdfspace" if [ -x $xx ] then echo "\nDisk space" >> $file ; $xx >>$file fi show "Checking installed hardware" { echo "\nInstalled hardware" echo "--------- --------\n" hwconfig -h 2>/dev/null } >>$file if [ -x /usr/utilities/bios ] then echo "\nBiosID: \c" >>$file /usr/utilities/bios 2>&1 >>$file fi echo "\nMemory installed" >>$file grep 'mem:' /usr/adm/messages | tail -1 >>$file [ -x /etc/memsize ] && echo "memsize `/etc/memsize`" >>$file [ -x /etc/swap ] && /etc/swap -l >>$file show "Checking installed software" echo "\nInstalled software" >>$file echo "--------- --------\n" >>$file if [ -x /usr/bin/swconfig ] then /usr/bin/swconfig 2>/dev/null | grep -v "[Dd]river" >>$file else f=/usr/lib/custom/history ; cat_it fi echo "\nChecking /etc/perms" >>$file fgrep "!ALL" /etc/perms/* 2>&1 >>$file echo "\nRunning customquery" >>$file if [ -x /usr/bin/customquery ] then /usr/bin/customquery listpatches | grep " " > /tmp/$$ cat /tmp/$$ >>$file echo "\nChecking modules that are patched" >>$file for x in `awk ' { File=$1; gsub(/:/,"/",File); gsub(/\/\//,"/",File); print File } ' /tmp/$$` do fgrep patches "/opt/K/"${x}"/.softmgmt/shared.db" | sed 's;^.*patches=;;g' >>$file done rm /tmp/$$ fi echo "\nRunning displaypkg" >>$file if [ -x /usr/bin/displaypkg ] then /usr/bin/displaypkg 2>/dev/null >> $file fi # Look for some stuff echo "\nChecking for Applications" >>$file [ -s /usr/lib/word/word.pr ] && echo "Application: Microsoft Word" >> $file [ -s /usr/term/term.cmd ] && echo "Application: Term Comms software" >> $file if [ -d /stand ] then show "Brand & System ID" echo "\nBrand & System ID" >>$file echo "System ID: " `/etc/brand -I` >>$file echo "Licences : " `/etc/brand -L` >>$file fi if [ -f /usr/adm/ISL/iqm_file ] then echo "\nIQM Details" >>$file egrep "IQM_ACTIVATION|IQM_SERIAL|IQM_ANNOTAT" /usr/adm/ISL/iqm_file >>$file fi show "Mouse setup" { DEVFILE=/usr/lib/event/devices TTYFILE=/usr/lib/event/ttys echo "\nMouse configuration" echo "----- -------------" # Check that the file is readable first [ -r "$DEVFILE" ] && { sed '/^#.*/d' < $TTYFILE | awk '{ if ( $2 ) print $2 }' | grep -v "^_" | uniq >/tmp/mm$$ if [ -s /tmp/mm$$ ] then echo " Type Connected" for entry in `cat /tmp/mm$$` do awk -v ENTRY=$entry ' { if ( $1 == ENTRY ) { printf("Mouse: %12s %s\n", ENTRY, $2) break } } ' $DEVFILE done else echo "No mouse configured" fi rm -f /tmp/mm$$ } || echo "No mouse configured" } >> $file echo "\nHard Drive Settings" >>$file df -v | while read a b do l ${b} 2>/dev/null >>$file done echo ".." >> $file l /dev/rhd[0-9]0 2>/dev/null >> $file show "Divvy Settings" echo "\nDivvy settings" >> $file { for disk in 0 1 2 3 do fdisk -p -f /dev/rhd${disk}0 >/tmp/dddd.$$ 2>/dev/null if [ $? -eq 0 ] ; then echo "--------------------" echo "Partitions on disk $disk" cat /tmp/dddd.$$ for partition in a 1 2 3 4 do if [ -d /stand ] then divvy -N -P /dev/hd${disk}${partition} >/tmp/dddd.$$ 2>/dev/null else (divvy /dev/hd${disk}${partition} 2>/dev/null </tmp/dddd.$$ fi if [ $? -eq 0 ] ; then echo "----------" echo "Divisions on partition $partition of disk $disk (/dev/hd${disk}${partition})" cat /tmp/dddd.$$ fi done fi done } >> $file rm -f /tmp/dddd.$$ 2>/dev/null show "Drive settings" { echo "\nDrive settings" echo "----- --------" dparam /dev/rhd00 2>/dev/null #dparam /dev/rhd10 2>/dev/null } >>$file show "Disk Manager" if [ -x /etc/dkconfig ] then echo "\nVDM Settings" >> $file /etc/dkconfig -l -a -s >>$file /etc/dkconfig -p -a -s -T >>$file fi if [ -s /etc/conf/cf.d/mscsi ] then echo "\nmscsi file" >>$file cat /etc/conf/cf.d/mscsi | sed '/^\*.*/d' >> $file show "Probing SCSI devices" echo "\nSCSI Devices\n" >> $file if [ -s /unix -a -s /usr/utilities/scsiQuery ] then for x in 0 1 2 3 4 5 6 do for y in rStp # rcd do [ -c /dev/${y}${x} ] && /usr/utilities/scsiQuery -d /dev/${y}${x} 2>/dev/null | awk 'BEGIN {FS=":"}{print $1,":",$2,":",$3,":",$4}' >>$file done done /usr/utilities/scsiQuery 2>/dev/null | awk 'BEGIN {FS=":"}{print $1,":",$2,":",$3,":",$4}' >>$file fi fi show "PCI Slots" if [ -x /usr/lib/vidconf/scripts/pciinfo -a -c /dev/pci ] then echo "\nPCI Slots" >>$file /usr/lib/vidconf/scripts/pciinfo 2>/dev/null | awk ' /device/ { device=substr($3,length($3)-3) } /vendor/ { vendor=substr($3,length($3)-3) } /interrupt line/ { printf("%s : %s \n", vendor, device ) } ' >>$file fi show "Working out active terminal ports" echo "\nActive Terminal ports\n" >> $file rm -f /tmp/$$ if [ -s /unix ] then egrep "respawn.*tty" /etc/inittab | awk '{ gsub(/"/,""); print $(NF) " " $(NF-1) " Enabled" }' >>/tmp/$$ egrep "off.*tty" /etc/inittab | awk '{ gsub(/"/,""); print $(NF) " " $(NF-1) " Disabled" }'>>/tmp/$$ else grep "^1" /etc/ttys | awk '{ print substr($1,2,1) " " substr($1,3) " Enabled" }' >> /tmp/$$ grep "^0" /etc/ttys | awk '{ print substr($1,2,1) " " substr($1,3) " Disabled" }' >> /tmp/$$ fi sort -u /tmp/$$ | awk ' BEGIN { while ( getline < "/etc/gettydefs" > 0 ) { if ( $1 ~ /^#/ ) { continue } if ( $1 ~ /^$/ ) { continue } if ( $2 == "\#" ) x=$3 else x=$2 Array[$1] = x } # End While Array["sc_m"]="Console" while ( getline < "/etc/ttytype" > 0 ) { Type[$2] = $1 } } # End Begin { if ( $1 in Array ) Speed=Array[$1] else Speed=$1 if ( $2 in Type ) What=Type[$2] else What=$2 printf("%-10s %-10s %-10s %-10s\n", $2,Speed,What,$3) } ' >> $file rm -f /tmp/$$ show "Checking printer set-up" { echo "\nPrinter setup" echo "------- -----\n" lpstat -t echo "\n" [ -s /unix ] && xx="/usr/spool/lp/admins/lp/interfaces" || xx="/usr/spool/lp/interface" for fle in `find $xx -type f -print 2>/dev/null ` do xyz=`basename $fle` echo "Printer - $xyz " egrep "#!|^stty|^WINP|^IPADD|^PORT|^ipaddr|^tcpport" $fle | grep -v "stty[12]*=" | sed 's/#!//' | awk '{ gsub(/ /,""); print "\t" $0 }' done } >>$file f="/etc/printcap" ; cat_it f="/usr/local/etc/axfile" ; cat_it f="/etc/axfile" ; cat_it show "/etc/default/tar" { echo "\n/etc/default/tar" echo "----------------" cat /etc/default/tar | sed '/^#.*/d' 2>/dev/null }>>$file show "/etc/default/filesys" { echo "\n/etc/default/filesys" echo "--------------------" cat /etc/default/filesys | sed '/^#.*/d' 2>/dev/null }>>$file { echo "\n/etc/default/boot" echo "--------------------" cat /etc/default/boot | sed '/^#.*/d' 2>/dev/null }>>$file show "Cron settings" echo "\nCron settings for root :" >>$file crontab -l | sed '/^#.*/d' >>$file if [ -s /unix ] then echo "\nCron settings for vet :" >>$file crontab -u vet -l | sed '/^#.*/d' >>$file 2>/dev/null echo "\nCron settings for uucp :" >>$file crontab -u uucp -l | sed '/^#.*/d' >>$file 2>/dev/null echo "\nCron settings for sys :" >>$file crontab -u sys -l | sed '/^#.*/d' >>$file 2>/dev/null fi DIR=/etc/rc2.d echo "\nStartup files (${DIR})" >>$file lc $DIR >> $file echo "\nCheck for features disabled in $DIR" >>$file for loop in `ls $DIR 2>/dev/null` do if `head $DIR/$loop | grep "^exit" 2>&1 >/dev/null ` then echo $loop "\t\t\tDisabled " >>$file fi done if [ -r /etc/bootptab ] then echo "\n/etc/bootptab" >> $file awk 'BEGIN { line="" } /^#/ { next } /^$/ { next } { if ( $0 ~ /\\/ ) { line = line $0 ; next } } { line = line $0 gsub(/ /,"",line); gsub(/\t/,"",line) ; gsub(/\\/,"",line) gsub(/::/,":",line); print line line="" } ' /etc/bootptab >> $file fi if [ -d "/tftpboot" ] then echo "\n/tftpboot" >> $file l -rt /tftpboot >> $file fi show "uulog entries" echo "\nuulog entries :\n" >>$file uulog >>$file 2>/dev/null show "Uustatus " echo "\nAccessiblility of machines :" >>$file uustat -m >>$file 2>/dev/null show "Ctar/Edge backup's" echo "\nCtar/Edge backup's :\n" >>$file # This is ctar f=/usr/lib/ctar/BACKUPS.DIR/LAST_Backup ; head_it ; list_it f=/usr/lib/ctar/BACKUPS.DIR/LAST_Master ; head_it ;list_it f=/usr/lib/ctar/BACKUPS.DIR/LAST_Verify ; list_it f=/usr/lib/ctar/BACKUPS.DIR/ctar.err ; list_it # This is edge f=/usr/lib/edge/lists/LAST_Backup ; head_it ;list_it f=/usr/lib/edge/lists/LAST_Master ; head_it ; list_it f=/usr/lib/edge/lists/LAST_Increm ; head_it ; list_it f=/usr/lib/edge/lists/LAST_Verify ; list_it f=/usr/lib/edge/lists/edge.err ; list_it # Now tapelog f=/usr/tapelog ; list_it f=/usr/utilities/tapelog ; list_it echo "\nBackup Dates and history\n" >> $file f=/etc/Master_backup ; list_it /usr/bin/backup -h 2>/dev/null >> $file if [ -x /bin/edge ] then echo "\nEdge-Bin" >> $file l /bin/edge 2>/dev/null >>$file what /bin/edge 2>/dev/null >>$file echo "\n" >> $file fi f=/usr/lib/edge/config/cfg.cron ; list_it show "Edge drive settings" f="/etc/CTBT.REPORT" ; cat_it f="/etc/EDGE.REPORT" ; cat_it f="/etc/RE2.REPORT" ; cat_it show "Edge Registration" f="/usr/lib/edge/config/info.register" ; cat_it echo "EDGE Serial Number" >>$file fgrep "S/N:" /usr/lib/edge/lists/* 2>/dev/null >>$file show "Invalid device files" { echo "\n\nDevice files" find /dev -type f -exec l {} \; echo "\n" >> $file } >>$file for XX in /usr/lib/ata /usr/lib/easyio /usr/lib/easyserver do if [ -x ${XX}/bin/version ] then { echo "\n\nATA software version `basename $XX` \c" ${XX}/bin/version } >>$file fi done show "Checking UPS" for XXX in /usr/lib/powerchute /usr/lib/powerchute_vs do if [ -d $XXX ] then echo "\n\nPowerchute found in $XXX" >>$file cat $XXX/powerchute.ini | egrep " Signall| PortName" >>$file f=$XXX/powerchute.log ; list_it f=$XXX/powerchute.dat ; list_it fi done if [ -f /usr/lib/apc/ssd.ini ] then echo "\n\nSimple UPS Monitor found" >>$file grep "TTY=" /usr/lib/apc/ssd.ini >>$file fi if [ -d /usr/ls3 ] then echo "\n\nls3 UPS monitor detected in /usr/ls3" >>$file f=`ls -rt /usr/ls3/Log | tail -1` ; tail_it /usr/ls3/Log/$f fi #if [ -x /usr/ls3/ls3con ] #then # /usr/ls3/ls3con -a isl123 <> $file #1 #0 #0 #EOF #fi show "Checking visionFS" for XXX in /usr/vision /usr/local/vision do if [ -d $XXX ] then echo "\nVisionFS found in $XXX" >>$file if [ -x ${XXX}/bin/visionfs ] then ${XXX}/bin/visionfs status 2>/dev/null >> $file ${XXX}/bin/visionfs share --list 2>/dev/null >> $file fi fi done show "Checking mailboxes" echo "\nMailbox Sizes" >>$file for x in `ls /usr/spool/mail` do echo $x " - " `fgrep 'From:' /usr/spool/mail/${x} | wc -l ` >>$file done echo "\n" >> $file f="/usr/lib/aliases" ; cat_it echo "\nMMDF Name :\c " >> $file fgrep MLNAME /usr/mmdf/mmdftailor >> $file echo "\n" >> $file f="/etc/inetd.conf" ; cat_it f=/etc/systemid ; cat_it f=/etc/hosts ; cat_it f=/etc/resolv.conf ; cat_it f=/etc/named.boot ; cat_it f=/etc/named.conf ; cat_it f=/etc/passwd ; cat_it show "Network Settings" if [ -x /usr/bin/ndstat ] then echo "\nndstat -R" >>$file /usr/bin/ndstat -R 2>/dev/null >> $file echo "\nnetstat -in / -rn" >>$file /usr/bin/netstat -in 2>/dev/null >> $file /usr/bin/netstat -rn 2>/dev/null >> $file echo "\nifconfig" >>$file /etc/ifconfig -a 2>/dev/null >> $file fi show "Novell Settings" if /usr/bin/getlan 2>/dev/null >/dev/null then echo "\nNovell Settings\n" >>$file echo "\ngetlan" >>$file /usr/bin/getlan 2>/dev/null >> $file echo "\nshowsvcs" >>$file /usr/bin/showsvcs 2>/dev/null >> $file echo "\ndnvt" >>$file /usr/bin/dnvt 2>/dev/null >> $file fi if [ -s "/usr/bin/uptime" ] then echo "\nSystem stats\n" >>$file uptime >>$file fi show "Checking HDB UUCP settings" { echo "\nUUCP files\n" echo "Devices" grep '^[^#].*' /usr/lib/uucp/Devices echo "Systems" grep '^[^#].*' /usr/lib/uucp/Systems | sort for x in `grep '^[^#].*' /usr/lib/uucp/Devices | awk '{ print $5 }' | sort -u` do y=`basename $x` egrep "^${y}|^&${y}" /usr/lib/uucp/Dialers if [ -f /etc/default/${y} ] then echo "\n/etc/default/${y}" cat /etc/default/${y} | sed '/^*.*/d' elif [ -f /usr/lib/uucp/default/${y} ] then echo "\n/usr/lib/uucp/default/${y}" cat /usr/lib/uucp/default/${y} | sed '/^*.*/d' fi done } >>$file if [ -s /etc/ppphosts ] then show "Checking PPP settings" { echo "\nPPP files\n" grep '^[^#].*' /etc/ppphosts 2>/dev/null grep '^[^#].*' /etc/ppppool 2>/dev/null } >>$file fi if [ -s /usr/lib/mstppp/Devices ] then show "Checking MorningStar settings" { echo "\nMorningStar files\n" for x in /usr/lib/mstppp/Systems /usr/lib/mstppp/Auth /usr/lib/mstppp/Devices /usr/lib/mstppp/Accounts /usr/lib/mstppp/Autostart /usr/lib/mstppp/Filter /usr/lib/mstppp/IPPool do f=$x ; cat_it done for x in `grep '^[^#].*' /usr/lib/mstppp/Devices | awk '{ print $1 }' | sort -u` do < /usr/lib/mstppp/Dialers awk ' /\\$/ { sub(/\\$/,"") ; Rem = Rem $0 ; next } { if ( Rem != "" ) print Rem ; Rem = "" ; print $0 } ' | grep "${x}" done } >>$file fi echo "\nsmail config\n" >>$file f=/usr/local/lib/smail/config ; list_it echo "\nMessages file\n" >>$file tail -40 /usr/adm/messages >>$file echo "\n" >> $file if [ -s /etc/conf/node.d/sio ] ; then # siofifo 2.0 sco!belal 93/05/14 # Print out the sio driver's impression of what ports it is dealing with ( cat /etc/conf/node.d/sio 2>/dev/null echo 'o -d -l sio_dma 336 o -d -b sio_fifoctl 24' | /etc/crash | sed -n '/:/s/.*: *//p' ) | awk 'BEGIN { trigger[0]=1 trigger[1]=4 trigger[2]=8 trigger[3]=14 } { if ($1 == "sio") name[$4]=$2 else if (dma < 336) { # Beware -- strong assumptions about input stream sio_dma[dma++]=$1 sio_dma[dma++]=$2 sio_dma[dma++]=$3 sio_dma[dma++]=$4 } else { sio_fifoctl[fifoctl++]=$1 sio_fifoctl[fifoctl++]=$2 sio_fifoctl[fifoctl++]=$3 sio_fifoctl[fifoctl++]=$4 } } END { print "Unit Name Address FIFO configuration" print "==== ===== ======= ==================" for (unit=0; unit<24; unit++) { hasfifo = (sio_dma[unit*14] % 16 >= 8) address = sio_dma[unit*14+2] if (address) { if (name[unit] == "") name[unit]="(?)" printf " %2d %-6s 0x%04x ", unit, name[unit], address if (hasfifo) printf "Receive trigger level %-2d Send queue %d\n", trigger[int(sio_fifoctl[unit]/64)], sio_fifoctl[unit] % 16 + 1 else print "Absent or dysfunctional" } } }' >> $file fi check_file () { echo "Checking filesystem (May take a little while)" echo "\nFilesystem check\n" >>$file if [ -s "/usr/local/bin/fsa" ] then for fle in `cat /etc/checklist` do /usr/local/bin/fsa $fle >>$file done fi } if [ -s /xenix ] then case `uname -p` in *386) check_file ;; esac fi show "Dhrystone benchmark" echo "\ndhrystone check\n" >>$file [ -x "/usr/utilities/dryr" ] && /usr/utilities/dryr 2>&1 >>$file echo "\nCPU-Speed\n" >>$file [ -x "/usr/utilities/p5speed" ] && /usr/utilities/p5speed 2>&1 >>$file show "Drive benchmark (This may take a min or two)" echo "\nDrive transfer time\n" >>$file [ -s /unix ] && xx="/usr/bin/timex" || xx="/bin/time" if [ -x $xx ] then $xx dd if=/dev/root of=/dev/null bs=10k count=1000 2>&1 | cat >/tmp/r for loop in 1 2 3 4 5 6 do $xx dd if=/dev/root of=/dev/null bs=10k count=1000 2>&1 | cat >/tmp/$loop & done wait su=`grep real /tmp/r | awk '{ print $2 }'` mu=`grep real /tmp/6 | awk '{ print $2 }'` echo "single-run $su" >>$file echo "multi-run $mu " >>$file rm -r /tmp/? 2>&1 >/dev/null fi if [ -x /usr/utilities/cc_dry2reg ] then # ======== Unix Dhrystone ============== PASSES=1000000 echo "\ncc with register ($PASSES passes)" >>$file /usr/utilities/cc_dry2reg <>$file $PASSES MIC #======================================== fi if [ -x /etc/hw ] then case `uname -X | grep Rel` in *3.2v5*) /etc/hw -v >> $file ;; *3.2v4*) /etc/hw -n /unix >> $file ;; *) ;; esac fi # Disk Settings results if [ -x /usr/utilities/divisions -a -x /usr/local/bin/mawk ] then show "Divisions" echo "\nDivisions\n" >>$file /usr/utilities/divisions 2>/dev/null >> $file fi # Bonnie results if [ -x /usr/local/bin/bonnie -a "$BACK" = "YES" -a -s "/unix" ] then where=`/etc/dfspace 2>/dev/null | /usr/bin/awk ' BEGIN { want="" } /^Total/ { next } { device=$1 ; space=$8 if ( $5 < 60 ) device = "" want= want " " device } END { print want } '` cat <> $file -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU EOF for DIR in $where do /usr/local/bin/bonnie -s 50 -d $DIR -m "$DIR" 2>/dev/null | tail -1 >>$file done fi if [ -x /usr/local/bin/iozone -a "$BACK" = "YES" ] then echo "\nIOzone" >> $file /usr/local/bin/iozone auto >> $file fi # Run JPR's savefiles script so important stuff is archived on /u # Full version on ftp.jpr.com if [ "$BACK" = "YES" ] then WHERE=/u/r # 'r'? Whatever... that's my mnemonic for 'recover' rm -fr $WHERE mkdir -p $WHERE /tcb/bin/ap -gd > $WHERE/ap.userlist # to remake passwd,group,tcb files sort << EndOfList > $WHERE/savedfilelist ./.rhosts ./.profile ./etc/default ./usr/lib/edge/config ./etc/profile ./usr/mmdf/mmdftailor ./usr/lib/uucp/Devices ./usr/lib/uucp/Permissions ./usr/lib/uucp/Systems ./usr/lib/mkuser/sh/profile ./usr/lib/scosh/english/us/.appllist2 ./usr/spool/lp/admins/lp/interfaces ./usr/spool/lp/model ./usr/spool/cron ./usr/spool/mail EndOfList EDGECAT=$WHERE ; export EDGECAT cd / ; edge caVhfF - $WHERE/savedfilelist 2>/dev/null | (cd $WHERE ; edge xf - 2>/dev/null ) if [ $? -ne 0 ] then cd / ; tar cLPfF - $WHERE/savedfilelist 2>/dev/null | (cd $WHERE ; tar xf - 2>/dev/null) fi fi show "Finished" echo "\nFinished" >>$file send_it