Very elegant.
And something new for me. I have never used the "bbcmd bbhostshow" command.
It's a much better way of getting the complete contents of all the bb-hosts with includes.
Every day is a schoolday. :-)
I would suggest one or two improvements though.
egrep '^[1-9][0-9]*\.' doesn't cater for my Wintel hosts which are defined with IP address 0.0.0.0
We let Xymon use DNS for them, so I dropped the first [1-9].
bb localhost "clientlog {} section=osversion" only works for Wintel.
I changed it to the following
bb localhost "clientlog {} section=osversion,uname"
This will grab the relevant info for Wintel as well as Solaris.
I then need to modify the output for Solaris, because the uname string includes the hostname.
I eventually ended up with this.
./server/bin/bbcmd bbhostshow | egrep '^[0-9]*\.' \
| awk '{print $2}' \
| sort -u \
| xargs -I{} ./server/bin/bb localhost "clientlog {} section=osversion,uname" \
| grep -v "^\[" \
| awk ' $1 == "SunOS" { print $1" "$3" "$4}; $1 != "SunOS" {print} ' \
| sort \
| uniq -c
That last awk might need to be seriously adapted for other OS types, or perhaps pipe the output to another similar awk.
(Also, for SunOS, $4 is the patch level. Hack that to print $1" "$3 for OS version only)
I ended up with output that looked like this
10 Microsoft (build 7600)
2 Microsoft Windows Server 2003 R2, Standard Edition Service Pack 2 (build 3790)
6 Microsoft Windows Server 2008 , 64-bit Service Pack 2 (build 6002)
1 SunOS 5.10 Generic_139556-08
4 SunOS 5.10 Generic_141444-09
90 SunOS 5.10 Generic_142900-03
Useful?
I have no idea.
And yes, I agree, temp files are bad. But unfortunately, a necessary evil sometimes.
Cheers
Vernon
On Tue, Sep 21, 2010 at 3:07 PM, David Baldwin <user-cbbf693f2c89@xymon.invalid> wrote:
All you need is this 'one liner' for the count of each version:
bbcmd bbhostshow | egrep '^[1-9][0-9]*\.' | awk '{print $2}' | sort -u |
xargs -I{} bb localhost "clientlog {} section=osversion" | sort | uniq
-c | egrep -v '^[[:space:]]*[0-9]+( \[osversion\]|[[:space:]]*$)'
Look! No temporary files! (Pet hate of mine ;)
David.How does a wget call compare to using the bb command?
I replaced the wget with:
$BBHOME/server/bin/bb localhost "clientlog $HOSTNAME
section=osversion" | grep -v osversion > $HOSTNAME
and the OSVER with:
OSVER=$(sed -e :a -e 's/<[^>]*>//g;/</N;//ba' $HOSTNAME)
On Mon, Sep 20, 2010 at 9:33 AM, Vernon Everett
<user-b3f8dacb72c8@xymon.invalid <mailto:user-b3f8dacb72c8@xymon.invalid>> wrote:
Bugger!
Was pretty busy today, and completely forgot.
Here's something that will help.
#!/bin/ksh
export BBHOME=/usr/lib/hobbit
typeset -L20 HOST
mkdir -p /usr/lib/hobbit/custom/data
cd /usr/lib/hobbit/custom/data
INCLUDES=$(grep ^include /etc/hobbit/bb-hosts | awk '{ print $2 }')
cat /etc/hobbit/bb-hosts $INCLUDES | egrep -h -v
"^#|^page|^$|^title|^subpage|^group|^include" | awk '{ print $2 }' \
| sort | uniq \
| while read HOSTNAME
do
wget -O $HOSTNAME -o /dev/null
http://hobbit/hobbit-cgi/bb-hostsvc.sh\?HOST\=$HOSTNAME\&SERVICE\=info
<http://hobbit/hobbit-cgi/bb-hostsvc.sh%5C?HOST%5C=$HOSTNAME%5C&SERVICE%5C=info>
&
done
wait
for HOSTNAME in /usr/lib/hobbit/custom/data/*
do
OSVER=$(grep OS: $HOSTNAME | sed 's/OS://g'| sed -e :a -e
's/<[^>]*>//g;/</N;//ba')
HOST=$(basename $HOSTNAME)
echo "$HOST $OSVER"
done
rm /usr/lib/hobbit/custom/data/*
This will generate a list of hosts, and OS version.
You want a list of number of OS versions, pipe the output to awk
'{ print $2 }' | sort | uniq -c | awk '{ print $2":"$1}
You can feed this back to Hobbit using bb, as a test and graph it.
I recommend you use stack graphs for more interesting looking graphs.
Let me know how you go.
Regards
Vernon
On Mon, Sep 20, 2010 at 8:25 PM, Martin Flemming
<user-f286aaa49a76@xymon.invalid <mailto:user-f286aaa49a76@xymon.invalid>> wrote:
Got some code stubs I can post later when I get to work.
That's will be great :-)
thanks & cheers,
martin
On Mon, 20 Sep 2010, Vernon Everett wrote:
Easy enough to knock together.
Read it out of the server, then feed it back.
Got some code stubs I can post later when I get to work.
Cheers
V
On Sun, Sep 19, 2010 at 1:47 AM, Martin Flemming
<user-f286aaa49a76@xymon.invalid <mailto:user-f286aaa49a76@xymon.invalid>>
wrote:
Hi !
Got somebody an working script for counting OS of
alle clients
( RHEl3/4/5 Solaris .5.8/5.19./5.10 etc ..) with
graphing .. ?
I know some old threads about that request,
But hey didn't really work for me are without graphs
.. :-(
thanks & cheers,
Martin
<mailto:xymon-unsubscribe at xymon.com>
xymon-unsubscribe at xymon.com <mailto:xymon-unsubscribe at xymon.com>
--
David Baldwin - IT Unit
Australian Sports Commission www.ausport.gov.au
Tel 02 62147830 Fax 02 62141830 PO Box 176 Belconnen ACT 2616
user-cbbf693f2c89@xymon.invalid Leverrier Street Bruce ACT 2617
Keep up to date with what's happening in Australian sport visit http://www.ausport.gov.au
This message is intended for the addressee named and may contain confidential and privileged information. If you are not the intended
recipient please note that any form of distribution, copying or use of this communication or the information in it is strictly prohibited
and may be unlawful. If you receive this message in error, please delete it and notify the sender.