Files
require/App/scripts/bootinfo
T
2010-10-27 10:04:48 +00:00

121 lines
3.7 KiB
Bash
Executable File

#!/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: 2010/10/27 10:04:48 $'
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 HOSTS.${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.25 2010/10/27 10:04:48 zimoch Exp $
# $Source: /cvs/G/DRV/misc/App/scripts/bootinfo,v $
# $Revision: 1.25 $