What follows is a health check script that checks the installation status of HP Operations Agent and the run status of the two mwa daemons that measure performance.
When run with the -y parameter the script will attempt to correct installed status of HP Operations Agent.
If you want the script, please email me via the sites response form. Cutting and pasting from this site can be done, but may be a very frustrating endeavor.
I have added commentary to the script, which may introduce run errors if screen scraped.
myserva:root > cat 247_mwarun
#!/bin/ksh
############################################################################
# make sure scopeux is running, if not run if not installed install.ed
# Load common environment
. /var/adm/bin/.scriptenv
echo “. Checking for mwa software installed and running on ${hn}.”
is=myserva
if [ “${hn}” = “myserva” ]; then is=”myservb”;fi
ps -ef >/tmp/plist.txt
srun=$(awk ‘/scopeux/{print $NF}’ /tmp/plist.txt | wc -l);
mrun=$(awk ‘/midaemon/{print $NF}’ /tmp/plist.txt | wc -l);
swlist -l bundle TC097EA > /tmp/swlist.txt
mwainst=$(awk ‘/TC097EA/{ print $NF}’ /tmp/swlist.txt| wc -l);
#echo “scopeux procs running: $srun mwa installed: $mwainst”
if [ “$1” = “-y” ];then
CHANGES=1
fi
if [ ${srun} -eq 0 ] || [ ${mrun} -eq 0 ] ;then
if (($CHANGES));then
if [ ${mwainst} -ne 1 ]
then
### depot server location is in variable ${is}. This is an ignite depot server.
swinstall -x mount_all_filesystems=false -s ${is}:/Depots/B.11.31/2014midyear_depot TC097EA
rc=$?
echo “mwa TC097EA install succeeded checking sd on ${hn}…”
swlist -l bundle TC097EA > /tmp/swlist.txt
mwainst=$(awk ‘/TC097EA/{ print $NF}’ /tmp/swlist.txt| wc -l);
if [ ${mwainst} -eq 1 ];then echo ” pass – mwa NOW installed.” ;fi
optstat=$(/var/adm/bin/bdfmegs “/opt ” |awk ‘!/File-System/{print $5}’);
echo “${hn} /opt is ${optstat} full remediate if above 85% …”
else
mwa start all
fi
else
echo ” NOTICE – mwa not installed or scopeux/midaemon is not running on ${hn} .(-y will fix).”
fi
else
echo ” pass – mwa installed. scopeux/midaemon is running on ${hn}.”
fi
optstat=$(/var/adm/bin/bdfmegs “/opt ” |awk ‘!/File-System/{print $5}’);
echo “${hn} /opt is ${optstat} full remediate if above 85% …”
rm -f /tmp/plist.txt
rm -f /tmp/swlist.txt
echo “#### end report $0 ${sn} ####”
Script depends on Bill Hassell’s bdfmegs script. bdf can be made to work.
Typical output is:
myserv0:root > ./247_mwarun
Executing HP-UX specific environment parameters…
. Checking for mwa software installed and running on myserv0.
pass – mwa installed. scopeux/midaemon is running on mserv0.
myserv0 /opt is 68% full remediate if above 85% …
#### end report ./247_mwarun myserv0 ####
myserv0:root > mwa stop all
Shutting down Perf Agent collection software
Shutting down scopeux, pid(s) 28345
The Perf Agent collector, scopeux has been shut down successfully.
NOTE: The ARM registration daemon ttd will be left running.
OVOA is running. Not shutting down coda
myserv0:root > ./247_mwarun
Executing HP-UX specific environment parameters…
. Checking for mwa software installed and running on myserv0.
NOTICE – mwa not installed or scopeux/midaemon is not running on myserv0 .(-y will fix).
myserv0 /opt is 68% full remediate if above 85% …
#### end report ./247_mwarun myserv0 ####
Tags: audit script, mwa health check.
midaemon and scopeux combine to collect performance data on HP-UX.
They both need to be running to properly collect data.
These are part of a depot called measureware which is part of the base OS.
To see if it is installed:
swlist -l bundle TC097EA
myserv0:root > swlist -l bundle TC097EA
# Initializing…
# Contacting target “myserv0″…
#
# Target: myserv0:/
#
TC097EA 11.20.000 HP Operations Agent
If not installed, HP Operations Agent can be downloaded from HP if you have a software contract with HP.
It is also delivered as part of openview, which is a separately licensed product.
I recently implemented performance data collection on a fleet of 100+ servers where I work.
On three of the servers, the daemons refused to run normally.
The following error was recorded in the file /var/opt/perf/status.mi
Unable to find newly enabled CPU.
Please use -prealloc to allocate bufsets for all CPUs.
Here are the steps to implement.
mwa stop all
/opt/perf/bin/ovpa stop
/opt/perf/bin/pctl stop
perfstat
kill any processes gently identified as running in perfstat output.
Edit the file /etc/rc.config.d/ovpa
MIPARMS=”-prealloc=2 -pids 10000 -kths 10000 -smdvss 512M”
export MIPARMS
2 is the number of physical cpus in the box.
If present the file /var/opt/perf/datafiles/RUN should be deleted.
mwa start all
perfstat
Check back in 1 hour and one day that midaemon and scopeux are still running.
Check /var/opt/perf/datafiles for updated log files.
Tags: hpux, midaemon, MIPARM, performance monitor hp-ux, scopeux
HP-UX hardware is a bit Byzantine in nature. The following script demystifies things a bit and allows us to work at remote data centers with accuracy on cable issues both fiber and copper.
If you want to use this script, use the contact form to reach out to me. Most people will find cutting and pasting from the website very frustrating.
I am also reaching out to the community, dare I say fan base for assistance. I am fairly certain that the fiber side accurately reports status of hba connections. I am fairly certain that the copper side needs to be improved.
This is tested on rx7640 and rx8640 systems. I am fairly confident that it will work on superdomes. I just do not happen to have any around to test on.
Script includes an environment plugin called .scriptenv . I will provide relevant code from it as some of what it does is customer specific and can not be released into the wild. If functionality is needed everywhere, I try to provide it via a centrally managed file. I provide functionality to both command prompts and scripting this way. It allows me to make the scripts generic and change one file with environment customizations.
Script is based on olrad -q output. It uses several deprecated utilities such as lanadmin and lanscan. Since I currently doubt HP-UX v4 is in the works, this should not be a problem.
The output then the script:
IP addresses and mac addresses have been changed to protect the innocent:
./backplane.layout.ksh
Executing HP-UX specific environment parameters…
m rx8640
ml ia64 hp server rx8640
——————————————————————–
Valid model found: rx8640
8-0-1-1 3/0/8/1
Nework info:
info lan3: 192.189.44.111 3/0/8/1/0/6/0 0x0025B3E86088 UP up(1) up(1)
info lan4: 192.101.0.155 3/0/8/1/0/6/1 0x0025B3E86089 UP up(1) up(1)
HBA info:
hba dev: /dev/fcd2
drviver state: ONLINE
fcms device: 3/0/8/1/0/4/0
WWN sys: 0x500143800542b4f9
WWP sys: 0x500143800542b4f8
Switch port: 0x20280027f8a26cd4
Switch node: 0x10000027f8a26cd4
hba dev: /dev/fcd3
drviver state: ONLINE
fcms device: 3/0/8/1/0/4/1
WWN sys: 0x500143800542b4fb
WWP sys: 0x500143800542b4fa
Switch port: 0x20a80027f8a09ff8
Switch node: 0x10000027f8a09ff8
——————————————————————–
8-0-1-7 3/0/2/1
Nework info:
info lan1: 192.8.0.95 3/0/2/1/0/6/0 0x0025B3E86066 UP up(1) up(1)
info lan2: 119.101.3.71 3/0/2/1/0/6/1 0x0025B3E86067 UP up(1) up(1)
HBA info:
hba dev: /dev/fcd0
drviver state: AWAITING_LINK_UP
fcms device: 3/0/2/1/0/4/0
WWN sys: 0x500143800542b4b5
WWP sys: 0x500143800542b4b4
Switch port: 0000000000000000
Switch node: 0000000000000000
hba dev: /dev/fcd1
drviver state: AWAITING_LINK_UP
fcms device: 3/0/2/1/0/4/1
WWN sys: 0x500143800542b4b7
WWP sys: 0x500143800542b4b6
Switch port: 0000000000000000
Switch node: 0000000000000000
——————————————————————–
8-0-1-5 3/0/6/0/0/0
Nework info:
ifconfig: no such interface
info lan7: 3/0/6/0/0/0/0/2/0/0/0 0x001E0B5186F0 UP up(1) up(1)
info lan8: 0.0.0.0 3/0/6/0/0/0/0/2/0/0/1 0x001E0B5186F1 UP up(1) up(1)
HBA info:
hba dev: /dev/fclp6
drviver state: ONLINE
fcms device: 3/0/6/0/0/0/0/4/0/0/0
WWN sys: 0x5001438001314ad5
WWP sys: 0x5001438001314ad4
Switch port: 0x20260027f8a09ff8
Switch node: 0x10000027f8a09ff8
hba dev: /dev/fclp7
drviver state: ONLINE
fcms device: 3/0/6/0/0/0/0/4/0/0/1
WWN sys: 0x5001438001314ad7
WWP sys: 0x5001438001314ad6
Switch port: 0x20950027f8a26cd4
Switch node: 0x10000027f8a26cd4
——————————————————————–
8-0-1-6 3/0/4/0/0/0
Nework info:
info lan5: 0.0.0.0 3/0/4/0/0/0/0/2/0/0/0 0x001E0B5186B4 UP up(1) up(1)
info lan6: 0.0.0.0 3/0/4/0/0/0/0/2/0/0/1 0x001E0B5186B5 UP up(1) up(1)
HBA info:
hba dev: /dev/fclp4
drviver state: ONLINE
fcms device: 3/0/4/0/0/0/0/4/0/0/0
WWN sys: 0x5001438001314a99
WWP sys: 0x5001438001314a98
Switch port: 0x200f0027f8a09ff8
Switch node: 0x10000027f8a09ff8
hba dev: /dev/fclp5
drviver state: ONLINE
fcms device: 3/0/4/0/0/0/0/4/0/0/1
WWN sys: 0x5001438001314a9b
WWP sys: 0x5001438001314a9a
Switch port: 0x20140027f8a09ff8
Switch node: 0x10000027f8a09ff8
——————————————————————–
Key output is this:
8-0-1-6
This is how the backplane is actually labeled.
cat backplane.layout.ksh
#!/usr/bin/ksh
#
# vgfiberswitch.ksh
# Steven “Shmuel” Protter steven.protter@hcl.com
#
. /var/adm/bin/.scriptenv
PATH=/opt/fcms/bin:${PATH}
####
# binary location
#
LS=/usr/sbin/lanscan
IS=/usr/sbin/ioscan
NW=/usr/sbin/nwmgr
IF=/usr/sbin/ifconfig
FU=/opt/fcms/bin/fcmsutil
LL=/usr/sbin/linkloop
LA=/usr/sbin/lanadmin
echo “m ${modinfo}”
echo “ml ${modinfol}”
echo “——————————————————————–”
if [ “${modinfo}” = “rx8640” ] ||[ “${modinfo}” = “rx7640” ]
then
echo “Valid model found: ${modinfo}”
else
echo “INVALID model found: ${modinfo}”
echo “Exiting return code 1 ………”
exit 1
fi
## determine number of multifunction cards to expect
ncards=$(olrad -n);
olrad -q| awk ‘/Yes/{ printf “%s %s\n”,$1,$2 }’ | while read -r slot hwp
do
echo “${slot} ${hwp}”
echo “Nework info:”
## network info
${LS} | grep “${hwp}” | awk ‘{ printf “%s %s %s %s %s\n”,$1,$2,$3,$4,$5 }’ | while read -r fwp mad nn st ln
do
### echo “hwp: ${fwp} mad: ${mad} netnum: ${nn} status ${st} lan:${ln}”
ipady=$(ifconfig ${ln} |awk ‘/inet/{print $2}’);
last1=$(lanadmin -g $nn |awk ‘/Administration Status/{ print $NF}’);
last2=$(lanadmin -g $nn |awk ‘/Operation Status/{ print $NF}’);
echo “info ${ln}: ${ipady} ${fwp} ${mad} ${st} ${last1} ${last2}”
done
echo “HBA info:”
ioscan -fnCfc -H ${hwp} | awk ‘/dev/{print $NF}’ |while read -r dv
do
nnwwn=$(${FU} ${dv}|awk ‘/N_Port Node World Wide Name/{print $NF}’);
npwwn=$(${FU} ${dv}|awk ‘/N_Port Port World Wide Name/{print $NF}’);
spwwn=$(${FU} ${dv}|awk ‘/Switch Port World Wide Name/{print $NF}’);
snwwn=$(${FU} ${dv}|awk ‘/Switch Node World Wide Name/{print $NF}’);
drst=$(${FU} ${dv}|awk ‘/Driver state/{print $NF}’);
fchw=$(${FU} ${dv}|awk ‘/Hardware Path is/{print $NF}’);
echo “hba dev: ${dv}”
echo “drviver state: ${drst}”
echo “fcms device: ${fchw}”
echo “WWN sys: ${nnwwn}”
echo “WWP sys: ${npwwn}”
echo “Switch port: ${spwwn}”
echo “Switch node: ${snwwn}”
done
echo “——————————————————————–”
done
relevant parts of .scriptenv
OSM=$(uname -s);
OSV=$(uname -r);
# determine the third octet
hn=$(hostname);
## /Depots/B.11.31/2014midyear_depot
## /Depots/B.11.23/2014midyear_depot
if [ “${OSM}” = “HP-UX” ]
then
echo “Executing HP-UX specific environment parameters…”
modinfo=$(model | awk ‘{print $NF}’);
modinfol=$(model | awk ‘{printf “%s %s %s %s\n”,$1,$2,$3,$4}’);
isvirt=$(model | awk ‘/Virtual/{print $NF}’ | wc -l);
fi
Script is provided without warranty.
Tags: backplane info, harware layout, hpux, rx class hardware info
We want storage to check performance on three possibly problematic LUNS.
Need to get the 4 character LUN ID’s on three disks:
disk82 disk83 and disk123
/usr/bin/inq -nodots -sym_wwn | egrep “disk82|disk83|disk123″| awk ‘{print $3}’ |awk ‘{ print substr( $0, length($0) – 3, length($0) ) }’
Output:
5422
5423
5826
HP-UX 11.31 September 2011 OE.
A good day is an awkful day.
This requires add in software from Veritas/Symmantec that can be expensive on HP-UX.
Lets say we want to extend /var which is lvol8.
It was originally 600 LE and we extended it as follows.
lvextend -l 800 /dev/vg00/lvol8 /dev/disk/disk25_p2
The 800 refers to LE logical extents. I prefer to use this rather than MB because it corresponds to the values displayed by most lvm utilities. -L <value in megabytes> can be used. I assume you can do the math here.
[system099]/root # lvdisplay /dev/vg00/lvol8
— Logical volumes —
LV Name /dev/vg00/lvol8
VG Name /dev/vg00
LV Permission read/write
LV Status available/syncd
Mirror copies 1
Consistency Recovery MWC
Schedule parallel
LV Size (Mbytes) 12800
Current LE 800
Allocated PE 1600
Stripes 0
Stripe Size (Kbytes) 0
Bad block on
Allocation non-strict
IO Timeout (Seconds) default
It was originally 600 LE and we extended it as follows.
lvextend -l 800 /dev/vg00/lvol8 /dev/disk/disk25_p2
fsadm -F vxfs -b 12800M /var
This command will use online JFS to extend the filesystem. The alternative is extendfs. But that requires a umount. Or perhaps xvumount -o force. Your choice, I don’t recommend it, but did test it the other day in the sandbox.
Now if you want to be cute and use all your space, try this.
SIZE=$(lvdisplay /dev/vg00/lvol8 | awk ‘/LV Size/ {print $NF}’);
ESIZE=”${SIZE}M”
fsadm -F vxfs -b $ESIZE /var
You can get more cute and do it with a single command line but I’m not going to do that. I have not broken any systems this week and am trying to avoid that.
Tags: file system expansion, Online JFS
Ever try and do system reporting based on bdf?
Annoying as all heck that sometimes the output is two line and sometimes one? I was forced to solve that problem today.
if [ “$OS” = “HP-UX” ]
then
dcmd=bdf
fi
arraypointer=0
exec $dcmd | egrep -v “%used|/dev/deviceFileSystem” | awk ‘{lvn=$1;v=$2;if (v==””) {getline;cap=$1;ucap=$2;acap=$3;puse=$4;mp=$5;printf “%s %s %s %s %s %s\n”, lvn,cap,ucap,acap,puse,mp} else {printf “%s %s %s %s %s %s\n”, $1,$2,$3,$4,$5,$6} }’ | while read -r p1 p2 p3 p4 p5 p6
do
#### calculations
done
Typical bdf output:
/dev/vg00/lvol9 4096000 3140019 896285 78% /var/adm/crash
/dev/vg_stgb1/lvol1
1572765696 1382813225 178080447 89% /steven05stgb
More when the script is done
Tags: awk, awk with if else logic, bdf, hpux, systems administration
HP-UX 11.23
setboot provides output only including the hardware path (ioscan -H).
When calculating DRD clone targets and such you need the regular legacy device path.
Here is a converter, built with a little help from JRF on the ITRC forums.
First get the setboot path. Might want to use the full path of the setboot command in practice.
pboot=$(setboot | grep ^Primary | awk ‘{ print $NF }’);
aboot=$(setboot | grep ^Alternate |awk ‘{ print $NF}’);
abootdisk=$(ioscan -kfnCdisk | awk -v aboot=${aboot} ‘/aboot/ $0~aboot {getline;print aboot,$2}’ | awk ‘{ print $2 }’);
pbootdisk=$(ioscan -kfnCdisk | awk -v aboot=${pboot} ‘/pboot/ $0~pboot {getline;print pboot,$2}’ | awk ‘{ print $2 }’);
The slick part is getting the variable in and out of awk.
Uses ioscan.
Tags: fiber channel adaptor, high capacity volume group, integrity, system migration
Lets say I have a list of servers a mile long to visit. Got a help desk request with the servers listed separated by commas.
server1,server2,server3
Lets say It is actually about 30 or 40 servers and I’m too lazy to edit the list
echo “server1,server2,server3” > olist
awk -F, -v nr=1 ‘{ for (x=nr; x<=NF; x++) {printf $x ” \n”; }; print ” ” }’ olist
Output:
server1
server2
server3
Plug and play time here, you can take care of any delimited format like this.
Spaces input by wordpress (thanks)
Task | Legacy Command | nwmgr Command |
Display command help | lanadmin -X -H 900 | nwmgr –help -S apa |
View link aggregate status | lanadmin -x -v 900 | nwmgr -c lan900 |
Create a MANUAL mode link aggregate | lanadmin -X -a 1 2 900 | nwmgr -a -A links=1,2 -A mode=MANUAL -I 900 -S apa |
Create a failover group | lanapplyconf | nwmgr -a -A links=1,2 -A mode=LAN_MONITOR -I 900 -S apa |
Remove all ports from a link aggregate | lanadmin -X -c 900 | nwmgr -d -A links=all -I 900 -S apa |
Remove all ports from a failover group | landeleteconf -g lan900 | nwmgr -d -A links=all -c lan900 |
Remove specific ports from a link aggregate | lanadmin -X -d 1 2 900 | nwmgr -d -A links=1,2 -I 900 -S apa |
Update the load balancing algorithm and group capability for a link aggregate | lanadmin -X -l LB_MAC 900 lanadmin -X -g 900 900 900 | nwmgr -s -A lb=LB_MAC, gc=900 -I 900 -S apa |
Update the group capability and configuration mode for a port | lanadmin -X -p 3 900 900 lanadmin -X -p 3 FEC_AUTO 900 | nwmgr -s -A gc=900, mode=FEC_AUTO -I 3 -S apa |
Update the group capability for a link aggregate | lanadmin -X -g 900 900 900 | nwmgr -s -A gc=900 -I 900 -S apa |
Update the administrative key and load balancing for a link aggregate | lanadmin -X -k 900 900 900 lanadmin -X -l LB_IP 900 | nwmgr -s -A key=900 -A lb=LB_IP -I 900 -S apa |
Update the administrative key and configuration mode for a port | lanadmin -X -k 4 900 900 lanadmin -X -p 4 LACP_AUTO 900 | nwmgr -s -A key=900 -A mode=LACP_AUTO -I 4 -S apa |
Update the administrative key for a port | lanadmin -X -k 4 900 900 | nwmgr -s -A key=900 -I 4 -S apa |
Update the load balancing | lanadmin -X -l LB_IP 900 | nwmgr -s -A lb=LB_IP -I 900 -S apa |
Set the configuration mode on a port | lanadmin -X -p 5 MANUAL 900 | nwmgr -s -A mode=MANUAL -I 5 -S apa |
Set the system priority on a port | lanadmin -X -s 5 10 900 | nwmgr -s -A sys_pri=10 -I 5 -S apa |
Display the MAC address | lanadmin -a 900 | nwmgr -A mac -c lan900 |
Display the speed | lanadmin -s 900 | nwmgr -A speed -c lan900 |
Display the MTU, MAC address, and speed | lanadmin -m -a -s 900 | nwmgr -A mtu,mac,speed -c lan900 nwmgr -A all -c lan900 |
Display group capability | lanadmin -x -g 5 900 | nwmgr -A gc -I 5 -S apa |
Display aggregate port status | lanadmin -x -i 900 | nwmgr -A all -c lan900 |
Display administrative key | lanadmin -x -k 5 900 | nwmgr -A key -I 5 -S apa |
Display load balancing algorithm | lanadmin -x -l 900 | nwmgr -A lb -c lan900 -S apa |
Display port status | lanadmin -x -p 5 900 | nwmgr -A mode -I 5 -S apa |
Display system priority | lanadmin -x -s 5 900 | nwmgr -A sys_pri -I 5 -S apa |
Display current port priority | lanadmin -x -t 5 900 | nwmgr -A port_pri -I 5 -S apa |
Display aggregate status | lanadmin -x -v 900 | nwmgr -v -c lan900 |
Check network connectivity | linkloop -i 900 0xaabbccddeeff | nwmgr –diag -A dest=0xaabbccddeeff -c lan900 |
Get statistics | lanadmin -g 900 | nwmgr –st -c lan900 |
Monitoring statistics | apa-monitor -p 5 | nwmgr –st monitor -S apa -I 900 |
Reset an APA interface | lanadmin -r 900 | nwmgr -r -c lan900 |
Reset statistics | lanadmin -c 900 | nwmgr -r –st -c lan900 |
View basic help | lanadmin -x -h 900 | nwmgr -h -S apa |
View verbose help | lanadmin -X -H 900 | nwmgr -h -v -S apa |
Clear data flows on a link aggregate | lanadmin -X -o 900 | nwmgr -r -q data_flow -c lan900 |
List all interfaces on the system | lanscan | nwmgr |
List all APA interfaces | lanscan -q | nwmgr -S apa |
When you complete getting APA to work exactly what you want it to save your configuration with the following command: nwmgr -s -S apa -A all –saved –from cu
nwmgr -s -f -c lan1 -A mtu=1500 –cu
### change mtu on lan1 to 1500 (lanadmin -M 1 1500)
Found some really useful information on APA. So good I won’t risk it disappearing. Pretty much here for my own reference.
Tags: system migration, wwn
I needed to update documentation and I needed more information that my prior syslayout.sh script provided on fiber.
# Improvement by JRF on the ITRC forums.
ioscan -kfnC fc | awk ‘/fcd/ {getline;fcd=$NF;print fcd,$2}’ | while read -r fdev
do
fcmsutil ${fdev} | awk ‘/Hardware / {print $5};/World / { print $7}’
done
Ouput looks like this:
0/0/12/1/0/4/0
0x5001438002a24979
0x5001438002a24978
0x204f000dec81b540
0x200f000dec81b541
0/0/12/1/0/4/1
0x5001438002a2497b
0x5001438002a2497a
0x2093000dec81b480
0x2010000dec81b481
2/0/12/1/0/4/0
0x5001438002a24d35
0x5001438002a24d34
0x2050000dec81b480
0x2010000dec81b481
2/0/12/1/0/4/1
0x5001438002a24d37
0x5001438002a24d36
0x2093000dec81b540
0x200f000dec81b541
Second, new improved version (Girsah Chadash)
ioscan -kfnC fc | awk ‘/fcd/ {getline;fcd=$NF;print fcd,$2}’ | while read -r fde
v
do
fcmsutil ${fdev} | awk ‘/Hardware / {print $5};/World / { print $7}’ | awk’ {printf “%s %s %s %s %s”,$1, $2, $3, $4, $5;}’
fcmsutil ${fdev} | awk ‘/Hardware Path/ {PATH=$5};
/N_Port Node/ {NNODE=$7};
/N_Port Port/ {NPORT=$7};
/Switch Port/ {SPORT=$7};
/Switch Node/ {SNODE=$7};
END{print PATH, NNODE, NPORT, SPORT, SNODE}’
done
Next innovation would be to combine the awk statements in the while loop and pull off the output with a single awk command. I may do this, but I might need help from an awk guru.
The ioscan output is multi line, so the real innovation is using the getline function of awk to get the second line of data and ignore the first. The filter /fcd gets rid of the column format information.
Yes it could be done with grep, but it is more AWKFUL this way.
Updated document to provide some indentation. Trying to make the code easier to read. That may force me to add formatted scripts to download, which I will get to as time permits.
SEP
Tags: Capacity Planning, high capacity volume group, superdome