RE: I have a question involving some cron'd shell scripts and Redhat 7.0 performance / methodology / peer review
"Ian Douglas" <[email protected]> Thu, 14 Nov 2002 16:01:25 -0800
| Newsgroups | gmane.linux.redhat.release.guinness |
|---|---|
| Message-ID | <[email protected]> |
MessageEric,
I notice in all of your script examples that you don't load a script
interpreter in any of them.
I'm not exactly a script expert myself, but I do a LOT of Perl and a handful
of bash scripts and they all have to have
#!/bin/bash
or
#!/usr/bin/perl
graph1 script
CENTERS=$(cat /usr/local/rrdwork/graph_centers) #This is a list of all
current remote facilities, i.e. norda1 norda2
for center in $CENTERS;do
/usr/local/rrdwork/graph_hour $center >> /dev/null # these graph_* files
are duplicates, with the only difference being the time ranges
/usr/local/rrdwork/graph_day $center >> /dev/null
/usr/local/rrdwork/graph_week $center >> /dev/null
done
exit 0
updatec script example
FACS=$(cat /usr/local/rrdwork/centers) #the updatec2 script would
reference /usr/local/rrdwork/centers2, this is the only difference in these
scripts
for fac in $FACS ;do #so I have each
group of remote systems broken up into 4 centers* files.
master=`rsh $fac /bin/totinf`
ld=`echo "$master"|gawk '{ if (NR == 1) print $0 }'`
users=`echo "$master"|gawk '{ if (NR == 2) print $0 }'`
tout=`echo "$master"|gawk '{ if (NR == 3) print $0 }'`
tout2=`echo "$master"|gawk '{ if (NR == 4) print $0 }'`
dat=`date`
systime=`echo "$master"|gawk '{ if (NR == 5) print $0 }'`
cpu=`echo "$master"|gawk '{ if (NR == 6) print $0 }'`
uptim=`echo "$master"|gawk '{if (NR == 7) print $0}'`
cmv=`echo "$master"|gawk '{ if (NR == 8) print $0}'`
rrdtool update /usr/local/rrdwork/rrds/$fac.rrd N:$ld:$users:$tout:$tout2
if [ -e /usr/local/rrdwork/logs/$fac.log ] ; then >
/usr/local/rrdwork/logs/$fac.log; fi
echo "$ld" >> /usr/local/rrdwork/logs/$fac.log
echo "$users" >> /usr/local/rrdwork/logs/$fac.log
echo "$tout" >> /usr/local/rrdwork/logs/$fac.log
echo "$tout2" >> /usr/local/rrdwork/logs/$fac.log
echo "$systime" >> /usr/local/rrdwork/logs/$fac.log
echo "$cpu" >> /usr/local/rrdwork/logs/$fac.log
echo "$uptim" >> /usr/local/rrdwork/logs/$fac.log
echo "$cmv" >> /usr/local/rrdwork/logs/$fac.log
done
And finally, the remote script which is executed by the updatec series of
scripts.
uptime|sed -e 's/.* load/load/' -e 's/\,//g'|cut -d" " -f3
t=`w|grep tmr|grep auto|wc -l`
u=`w|grep epac.sh|wc -l`
tu=`expr "$t" + "$u"`
echo $tu
s=`date '+%d'`
x=`tail -32 "/u/server/log/tal$s.log"|awk '{print $2 ;}'|grep
000|wc -l|awk '{print $1}'`
echo "$x"
tout2=`cat "/u/server/log/tal$s.log"|awk '{print $2 ;}'|grep 000|wc -l|awk
'{print $1}'`
echo "$tout2"
time=`/bin/date` ; echo "$time"
cpu=`hw -r cpu|grep performs` ; echo "$cpu"
uptim=`w -t`;echo "$uptim"
cmv=`cat /u/server/motd|grep VERSION`; echo "$cmv"