#!/bin/sh #File: bootinfo #Description: get info from the IOC_LASTBOOTED database table #Author: D.Zimoch #Parameters: function help() { echo "usage: $(basename $0) [options] [pattern]" echo " Find boot information about %pattern% in database" echo "options are:" echo " -h, -?, --help : print this help and quit" echo " -v, --version : print cvs version info and quit" echo " -d : print BOOTDATE" echo " -t : print BOOTTIME" echo " -b : print BOOTPC" echo " -I : print INSTBASE" echo " -S : print INSTBASE (was SLSBASE before)" echo " -E : print EPICS version" echo " -V : print vxWorks version" echo " -i : print IP_ADDR" echo " -A : print ARCH" echo " -a : print a lot (= -dtbSEViA)" echo " -p : print PORT (soft IOCs) or processor number (VME IOCs)" echo " -L : log (print all reboots, not only last)" echo " -x : do exact query, i.e. do not append '%' to search pattern" echo " --noheader : don't print table header" echo " -- : treat next word as pattern, even if starting with -" exit 0 } function version() { echo 'Author: D. Zimoch' echo '$Date: 2011/11/14 14:31:23 $' echo '$Source: /cvs/G/DRV/misc/App/scripts/bootinfo,v $' exit 0 } HSEL="SYSTEM AS IOC" TABLE="IOC_LASTBOOTED" ORDER="1" JOKER="%" #ORDER="IOC,TO_DATE(BOOTDATE||' '||BOOTTIME,'DD-MM-YYYY HH24:MI:SS')" while true do case "$1" in --noheader) OPTS="SET HEADING OFF;" ;; -*h* | -*\?* | --help) help ;; -*v* | --version) version ;; --) shift; if [ -z "$SEL" ]; then set -- -a -- "$@"; continue; else break; fi ;; -*) OPTION=$1 while true do OPTION=${OPTION:1} case "$OPTION" in t*) SEL="$SEL, BOOTTIME"; ORDER="BOOTDATE" ;; d*) SEL="$SEL, BOOTDATE"; ORDER="BOOTDATE" ;; b*) SEL="$SEL, BOOTPC" ;; E*) SEL="$SEL, EPICSVER AS EPICS" ;; V*) SEL="$SEL, VXWORKSVER AS VXWORKS";; i*) SEL="$SEL, IPADDR AS IP_ADDR" ;; e*) SEL="$SEL, ETHADDR AS ETH_ADDR" ;; p*) SEL="$SEL, PROCNUM as PORT" ;; [SI]*) SEL="$SEL, SLSBASE AS INSTBASE" ;; A*) SEL="$SEL, SUBSTR(VXWORKS,INSTR(VXWORKS,'/',-1,2)+1, INSTR(VXWORKS,'/',-1,1)-INSTR(VXWORKS,'/',-1,2)-1) AS ARCH" ;; f*) SEL="$SEL, VXWORKS AS FILENAME" ;; a*) OPTION=-dtbSEViA${OPTION:1} ;; L*) SEL="$SEL, BOOT_DT AS BOOTDATE, TO_CHAR(BOOT_DT,'HH24:MI:SS') AS BOOTTIME"; ORDER="BOOTDATE"; TABLE="IOC_BOOTLOG" ;; x*) JOKER="" ;; "") break ;; *) echo "Unknown option -${OPTION:0:1}. Try: --help" exit 1 ;; esac done ;; *) if [ -z "$SEL" ]; then set -- -a "$@"; continue; else break; fi ;; esac shift done if [ -z "$ORACLE_HOME" ]; then echo "ORACLE_HOME not defined" >&2 exit 1 fi eval $(resize 2>/dev/null) pattern="$JOKER$1$JOKER" sqlplus -s gfa_public/pub01@gfaprd << EOF SET PAGESIZE 10000; SET LINESIZE ${COLUMNS:-120}; SET FEEDBACK OFF; $OPTS COLUMN IOC FORMAT A20; COLUMN BOOTPC FORMAT A20; COLUMN INSTBASE FORMAT A15; COLUMN EPICS FORMAT A7; COLUMN VXWORKS FORMAT A7; COLUMN ARCH FORMAT A15; SELECT ${HSEL} ${SEL} FROM EPICS.${TABLE} WHERE SYSTEM LIKE UPPER('$pattern') OR BOOTPC LIKE '$pattern' OR SLSBASE LIKE '$pattern' OR EPICSVER LIKE '$pattern' OR VXWORKSVER LIKE '$pattern' OR ETHADDR LIKE REPLACE(LOWER('$pattern'),'-',':') OR IPADDR LIKE '$pattern' OR LOWER(VXWORKS) LIKE LOWER('$pattern') ORDER BY ${ORDER}; EXIT EOF # $Name: $ # $Id: bootinfo,v 1.26 2011/11/14 14:31:23 lutz_h Exp $ # $Source: /cvs/G/DRV/misc/App/scripts/bootinfo,v $ # $Revision: 1.26 $