forked from epics_driver_modules/require
123 lines
3.7 KiB
Bash
Executable File
123 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 " -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: 2008/09/29 14:53:02 $'
|
|
echo '$Source: /cvs/G/DRV/misc/App/scripts/bootinfo,v $'
|
|
exit 0
|
|
}
|
|
|
|
HSEL="SYSTEM AS IOC"
|
|
DEFAULTSEL=",BOOTDATE,BOOTTIME,BOOTPC,SLSBASE AS INSTBASE,
|
|
EPICSVER AS EPICS,VXWORKSVER AS VXWORKS,IPADDR AS IP_ADDR,
|
|
SUBSTR(VXWORKS,INSTR(VXWORKS,'/',-1,2)+1,
|
|
INSTR(VXWORKS,'/',-1,1)-INSTR(VXWORKS,'/',-1,2)-1) AS ARCH"
|
|
TABLE="IOC_LASTBOOTED"
|
|
ORDER="BOOTDATE"
|
|
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; break ;;
|
|
-*) OPTION=$1
|
|
while true
|
|
do
|
|
OPTION=${OPTION:1}
|
|
case "$OPTION" in
|
|
d*) SEL="$SEL,BOOTDATE" ;;
|
|
t*) SEL="$SEL,BOOTTIME" ;;
|
|
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" ;;
|
|
[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, TO_CHAR(BOOT_DT,'HH24:MI:SS')";
|
|
ORDER="BOOT_DT";
|
|
TABLE="IOC_BOOTLOG" ;;
|
|
x*) JOKER="" ;;
|
|
"") break ;;
|
|
*) echo "Unknown option -${OPTION:0:1}. Try: --help"
|
|
exit 1 ;;
|
|
esac
|
|
done ;;
|
|
*) break ;;
|
|
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 A17;
|
|
COLUMN BOOTPC FORMAT A12;
|
|
COLUMN INSTBASE FORMAT A14;
|
|
COLUMN EPICS FORMAT A7;
|
|
COLUMN VXWORKS FORMAT A7;
|
|
COLUMN ARCH FORMAT A15;
|
|
|
|
SELECT ${HSEL} ${SEL:-$DEFAULTSEL}
|
|
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.21 2008/09/29 14:53:02 krempaska Exp $
|
|
# $Source: /cvs/G/DRV/misc/App/scripts/bootinfo,v $
|
|
# $Revision: 1.21 $
|
|
|