#!/bin/ksh -p # $Id: //depot/dev/proactive/explorer3/tools/sf15k-sc#3 $ # Source tools functions . ${EXP_LIB}/exp_tools # Run if specified to do so script=`basename $0` which_gate_exit starcat sf15k $script default all # Require the root SMS package before attempting collection TEXT=`gettext "SMS not installed"` require "pkginfo -q SUNWSMSr" "${TEXT}" # Function to create a user with appropriate permissions add_user () { # Set user variable USER="exp${EXP_PID}" # useradd useradd -o -d / -s /bin/ksh ${USER} # Provide platform service and admin privileges /opt/SUNWSMS/bin/smsconfig -a -u ${USER} -G svc platform for i in a b c d e f g h i j k l m n o p q r do /opt/SUNWSMS/bin/smsconfig -a -u ${USER} -G admn $i done } # Function to remove service user rm_user () { # Make sure USER is set [ -z "${USER}" ] && USER="exp${EXP_PID}" # Remove platform service and admin privileges /opt/SUNWSMS/bin/smsconfig -r -u ${USER} -G svc platform for i in a b c d e f g h i j k l m n o p q r do /opt/SUNWSMS/bin/smsconfig -r -u ${USER} -G admn $i done # userdel userdel ${USER} # Unset USER variable unset USER } # Trap handler - remove user if we try to stop the script cleanup () { rm_user exit } trap 'cleanup' 1 2 3 14 15 add_user # General information files and directories get_dir "/var/opt/SUNWSMS/.pcd" sf15k/pcd/ get_file "/var/opt/SUNWSMS/adm/.logger" sf15k/adm/logger! get_file "/var/opt/SUNWSMS/adm/mess*" sf15k/adm/ get_file "/var/opt/SUNWSMS/adm/platform/messages.*" sf15k/adm/platform/ get_file "/var/sadm/system/logs/smsbackup" sf15k/logs/ get_file "/etc/opt/SUNWSMS/config/.fomd_uids.cf" sf15k/etc/config/fomd_uids.cf! get_file "/etc/opt/SUNWSMS/config/platform/.postrc" sf15k/etc/config/postrc! get_dir "/var/opt/SUNWSMS/adm/platform/dump" sf15k/adm/platform/dump/ get_dir recursive "/var/opt/SUNWSMS/adm/anonymous" sf15k/adm/anonymous/ get_dir recursive "/etc/opt/SUNWSMS/SMS" sf15k/etc/ # Run smsversion (as root) get_cmd "/opt/SUNWSMS/bin/smsversion" sf15k/ # Get config listing (as root) get_cmd "/bin/ls -laR /etc/opt/SUNWSMS/SMS/config" sf15k/ # Basic commands as ${USER} get_cmd "/opt/SUNWSMS/bin/showdate -v" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showboards -v" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showenvironment" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showfailover" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showfailover -r" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showfailover -v" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showbus" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showbus -v" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showcmdsync" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showcmdsync -v" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showdatasync -l" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showdatasync -v" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/marginclock" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/marginvoltage" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showplatform" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/showplatform -v" user=${USER} sf15k/ # Get thermcal data for brd in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 do # Boards are CS[0-1] and EX[0-17] case ${brd} in 0|1) get_cmd "/opt/SUNWSMS/bin/thermcal -r CS${brd}" user=${USER} sf15k/ get_cmd "/opt/SUNWSMS/bin/thermcal -r EX${brd}" user=${USER} sf15k/ ;; *) get_cmd "/opt/SUNWSMS/bin/thermcal -r EX${brd}" user=${USER} sf15k/ ;; esac done # Get revisions on lpost elf files for OBJ in /opt/SUNWSMS/hostobjs/*.elf do MOD=`basename ${OBJ}` get_cmd "/usr/ccs/bin/mcs -p ${OBJ} | grep ${MOD}" sf15k/hostobjs/${MOD}! done # Get getfacl output get_cmd "/bin/getfacl /etc/opt/SUNWSMS/SMS/config/" sf15k/getfacl/ get_cmd "/bin/getfacl /etc/opt/SUNWSMS/SMS/config/platform" sf15k/getfacl/ get_cmd "/bin/getfacl /var/opt/SUNWSMS/adm/" sf15k/getfacl/ get_cmd "/bin/getfacl /var/opt/SUNWSMS/adm/platform" sf15k/getfacl/ get_cmd "/bin/getfacl /var/opt/SUNWSMS/adm/anonymous" sf15k/getfacl/ get_cmd "/bin/getfacl /var/opt/SUNWSMS/data/" sf15k/getfacl/ # Domain information for DOMAIN in A B C D E F G H I J K L M N O P Q R do # Make sure we have a domain configured [ ! -f "/var/opt/SUNWSMS/data/${DOMAIN}/nvramdata" ] && continue # Domain information get_file "/etc/opt/SUNWSMS/config/${DOMAIN}/.postrc" sf15k/postrc! get_dir recursive "/var/opt/SUNWSMS/adm/${DOMAIN}" sf15k/${DOMAIN}/adm/ get_dir "/var/opt/SUNWSMS/data/${DOMAIN}" sf15k/${DOMAIN}/data/ get_dir "/var/opt/SUNWSMS/.lock/${DOMAIN}" sf15k/${DOMAIN}/lock/ # Domain commands # get_cmd "/opt/SUNWSMS/bin/sysid -d ${DOMAIN}" user=${USER} sf15k/${DOMAIN}/data/ get_cmd "/opt/SUNWSMS/bin/showdate -v -d ${DOMAIN}" user=${USER} sf15k/${DOMAIN}/ get_cmd "/opt/SUNWSMS/bin/showdevices -v -d ${DOMAIN}" user=${USER} sf15k/${DOMAIN}/ get_cmd "/opt/SUNWSMS/bin/showobpparams -d ${DOMAIN}" user=${USER} sf15k/${DOMAIN}/ get_cmd "/opt/SUNWSMS/bin/showkeyswitch -d ${DOMAIN}" user=${USER} sf15k/${DOMAIN}/ get_cmd "/opt/SUNWSMS/bin/showxirstate -d ${DOMAIN}" user=${USER} sf15k/${DOMAIN}/ # getfacl commands get_cmd "/bin/getfacl /etc/opt/SUNWSMS/SMS/config/${DOMAIN}" sf15k/getfacl/ get_cmd "/bin/getfacl /var/opt/SUNWSMS/adm/${DOMAIN}" sf15k/getfacl/ get_cmd "/bin/getfacl /var/opt/SUNWSMS/data/${DOMAIN}" sf15k/getfacl/ done # Clean up -- remove user rm_user