src/utils/qa/checkStoreUnits.csh 1.26
1.26 2009/04/11 00:37:02 rhead
Sourced new qaConfig file at the top. Changed -h hgwbeta lines to look for sql host stored in a variable, specified in the new qaConfig file.
Index: src/utils/qa/checkStoreUnits.csh
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/utils/qa/checkStoreUnits.csh,v
retrieving revision 1.25
retrieving revision 1.26
diff -b -B -U 1000000 -r1.25 -r1.26
--- src/utils/qa/checkStoreUnits.csh 23 Apr 2008 22:21:01 -0000 1.25
+++ src/utils/qa/checkStoreUnits.csh 11 Apr 2009 00:37:02 -0000 1.26
@@ -1,136 +1,137 @@
#!/bin/tcsh
+source `which qaConfig.csh`
#######################
#
# 08-06-05
# checks all /cluster/store units and reports space avail
#
#######################
set date=`date +%Y%m%d`
set storeName=""
set machine=""
set number=0
set fullunit=""
if ( "$HOST" != "hgwdev" ) then
echo "\n error: you must run this script on dev!\n"
exit 1
endif
set machine=""
if ($#argv < 1 || $#argv > 1) then
echo
echo " checks all /cluster/store units and reports space avail."
echo
echo " usage: go"
echo
exit
endif
# ping the machines to load all the mounts
set j=12
while ( $j )
ls /cluster/store$j >& /dev/null
set j=`echo $j | awk '{print $1-1}'`
end
ls /cluster/bluearc >& /dev/null
ls /cluster/home >& /dev/null
rm -f storefile
df -h | egrep "store|bluearc|home|data|bin" \
| sed -e "s/10.1.1.3:\/bluearc/ /" \
| sed -e "s/\/dev\/sdc1/ /" \
| sed -e "s/\/dev\/sdd1/ /" \
| sed -e "s/\/dev\/dm-8/ /" \
| sed -e "s/\/dev\/dm-9/ /" \
| sed -e "s/\/dev\/sde1/ /" \
| egrep % | sort -k4 -r >> storefile
set fullunit=`awk '$4 == "100%" || $4 == "99%" || $4 == "98%" {print $5}' \
storefile`
# display status of all units
echo
cat storefile
echo
rm storefile
#set number of units that need full du
set number=`echo $fullunit | awk -F" " '{print NF}'`
if ($number == 0) then
exit
else
set j=0
while ($number - $j)
# get them in order, most full unit first
set j=`echo $j | awk '{print $1 + 1}'`
set unit=$fullunit[$j]
set storeName=`echo $unit | awk -F/ '{print $NF}'`
set machine=`df | grep export$unit | awk -F- '{print $1}'`
if (-e $unit/du.$date) then
# don't run du again. simply display current totals
echo "full du list at $unit/du.$date\n"
continue
endif
echo "sizes in megabytes:\n"
echo "$unit\n"
# get disk usage 4 dirs deep and sort by size
# if the unit can't be logged into, do the du through the wire
# (ok per erich if only now and then)
# ping the unit to be sure it is mounted
ls $unit >& /dev/null
if ( $unit =~ {bluearc,home} ) then
du -m --max-depth=4 $unit | sort -nr > tempfile
else
# use ssh to do the du locally
ssh $machine du -m --max-depth=4 $unit | sort -nr > tempfile
endif
# when du value is the same, "-k2,2" flag puts subdir second
sort -k1,1nr -k2,2 tempfile > du.$storeName.$date.temp
rm -f tempfile
# remove lines that have subdir on next line
set n=0
set fullfile="du.$storeName.$date.temp"
set rows=`wc -l $fullfile | awk '{print $1-1}'`
rm -f outfile
set sizeN=101
# keep info for files/dirs > 100 Mbytes only
while ($rows - $n > 1 && $sizeN > 99)
# get directory name and size about this and next row
set n=`echo $n | awk '{print $1+1}'`
set m=`echo $n | awk '{print $1+1}'`
set dirN=`sed -n -e "${n}p" $fullfile | awk '{print $2}'`
set dirM=`sed -n -e "${m}p" $fullfile | awk '{print $2}'`
set sizeN=`sed -n -e "${n}p" $fullfile | awk '{print $1}'`
set sizeN=`sed -n -e "${m}p" $fullfile | awk '{print $1}'`
# check to see if next row is a subdir of present row.
# and drop present row if so.
echo $dirM | grep $dirN > /dev/null
if ($status) then
# echo "keeping $dirN"
# add names of file owners
set ownerN=`ls -ld $dirN | awk '{print $3}'`
echo "$sizeN $ownerN $dirN" >> outfile
else
# echo "dropping $dirN"
endif
end
# copy output to the storeUnit itself
cp outfile $unit/du.$date
cp outfile du.$storeName.$date
echo "full du list at $unit/du.$date\n"
head -40 outfile
echo
rm -f outfile du.$storeName.$date.temp
end
endif
exit