136 lines
2.5 KiB
Bash
136 lines
2.5 KiB
Bash
#!/bin/bash
|
|
|
|
debug() {
|
|
if [ "$1" == "d" ] ; then
|
|
echo $2
|
|
fi
|
|
}
|
|
|
|
is_empty () {
|
|
_o=`rrdtool xport DEF:A=/var/lib/collectd/rrd/$(hostname -f)/$2:value:AVERAGE XPORT:A -s -1week -m27 | xmllint --xpath 'string(xport/data/row[v>0]/v)' -`
|
|
if [ $? != 0 ] ; then
|
|
echo "Error. exiting."
|
|
exit
|
|
fi
|
|
if [ "$_o" == "" -o "$_o" == "0.0000000000e+00" -o "$_o" == "NaN" ] ;then
|
|
debug $1 "$2 is empty"
|
|
return 1
|
|
fi
|
|
if [ "$1" == "ne" ] ; then
|
|
echo "$2 has data"
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
category_msc() {
|
|
mkdir $1
|
|
cd $1
|
|
for f in ../statsd/derive-msc.0.$1.* ; do
|
|
ln -s $f $1-`echo $f | awk -F'.' '{print $6}'`.rrd
|
|
done
|
|
cd ..
|
|
}
|
|
|
|
category_bsc() {
|
|
mkdir $1
|
|
cd $1
|
|
for f in ../statsd/derive-bsc.0.$1.* ; do
|
|
ln -s $f $1-`echo $f | awk -F'.' '{print $6}'`.rrd
|
|
done
|
|
cd ..
|
|
}
|
|
|
|
category_bts() {
|
|
_name=`bname $2`
|
|
mkdir $1-$_name
|
|
cd $1-$_name
|
|
for f in ../statsd/derive-bts.$2.$1.* ; do
|
|
ln -s $f $1-`echo $f | awk -F'.' '{print $6}'`.rrd
|
|
done
|
|
cd ..
|
|
}
|
|
|
|
category_bts_g() {
|
|
_name=`bname $2`
|
|
mkdir $1-$_name
|
|
cd $1-$_name
|
|
for f in ../statsd/gauge-bts.$2.$1.* ; do
|
|
ln -s $f $1-`echo $f | awk -F'.' '{print $6}'`.rrd
|
|
done
|
|
cd ..
|
|
}
|
|
|
|
once() {
|
|
|
|
cd /var/lib/collectd/rrd/$(hostname -f)
|
|
|
|
#rm -rf sms
|
|
#mkdir -p sms
|
|
#cd sms
|
|
#for f in ../statsd/derive-msc.0.sms.* ; do
|
|
# ln -s $f sms-`echo $f | awk -F'.' '{print $6}'`.rrd
|
|
#done
|
|
#cd ..
|
|
|
|
for item in sms loc_update_type; do
|
|
rm -rf $item
|
|
category_msc $item $bts
|
|
done
|
|
|
|
for item in location_update chreq chan_sdcch chan_tch; do
|
|
rm -rf $item-*
|
|
for bts in "${!BTS[@]}" ; do
|
|
category_bts $item $bts
|
|
done
|
|
done
|
|
|
|
for item in oml_connected chanloadavg chan_ccch_sdcch4 chan_sdcch8 chan_tch_h chan_osmo_dyn lchan_borken; do
|
|
rm -rf $item-*
|
|
for bts in "${!BTS[@]}" ; do
|
|
category_bts_g $item $bts
|
|
done
|
|
done
|
|
|
|
rm -rf BTS_uptime-*
|
|
for bts in "${!BTS[@]}" ; do
|
|
_name=`bname $bts`
|
|
mkdir BTS_uptime-$_name
|
|
cd BTS_uptime-$_name
|
|
for f in ../statsd/gauge-bts.$bts.uptime.* ; do
|
|
ln -s $f uptime-`echo $f | awk -F'.' '{print $6}'`.rrd
|
|
done
|
|
cd ..
|
|
done
|
|
|
|
find -name chreq-total.rrd -type l -delete
|
|
}
|
|
|
|
if [ "$1" == "" ] ; then
|
|
echo "Please pass 1 argument"
|
|
exit
|
|
fi
|
|
|
|
. /home/rhizomatica/bin/vars.sh
|
|
|
|
if [ "$1" == "once" ] ; then
|
|
once
|
|
exit
|
|
fi
|
|
|
|
cd /var/lib/collectd/rrd/$(hostname -f)
|
|
rm -rf gauge-* derive-* sms
|
|
|
|
if [ ! -d statsd ] ; then
|
|
echo "No statsd directory"
|
|
exit
|
|
fi
|
|
|
|
for f in statsd/* ; do
|
|
debug $1 "Checking $f"
|
|
is_empty $1 $f
|
|
if [ $? == 1 ] ; then continue ; fi
|
|
mkdir $(basename $f .rrd)
|
|
cd $(basename $f .rrd)
|
|
ln -s ../$f .
|
|
cd ..
|
|
done
|