#!/usr/local/bin/bash # # This goes through incoming, and concatenates # reported entries into appropriate files # PATH=$PATH:/usr/local/etc/statmon:/usr/local/bin indir=/usr/local/etc/statmon/incoming logdir=/usr/local/etc/statmon/logs/m # First we check incoming for any files val=`ls $indir` if [ ! -z "$val" ] then for ent in $val do type=`echo $ent|cut -d'.' -f1` macname=`echo $ent|cut -d'.' -f2` date=`echo $ent|cut -d'.' -f3|cut -c1-6` if [ "$type" != "http" ] then if [ ! -d $logdir/$macname/$type ] then mkdir -p $logdir/$macname/$type fi fi case $type in "esprinter") # Logs from Studio server sed -e "s/\"\"/\"Unknown\"/g" -e "s/ \"/{/g" -e "s/\" /{/g" -e "s/\"//g" <$indir/$ent >/tmp/ptr.out.$$ ptracct /tmp/ptr.out.$$ >/tmp/ptr.out2.$$ 2>/dev/null for month in `cut -c1-6 /tmp/ptr.out2.$$|sort|uniq` do gunzip $logdir/$macname/$type/$month.gz >/dev/null 2>&1 egrep "^$month" /tmp/ptr.out2.$$ >> $logdir/$macname/$type/$month gzip $logdir/$macname/$type/$month >/dev/null 2>&1 done rm -rf /tmp/ptr.out*.$$ ;; "perf") # Performance is logged twice cat $indir/$ent > $logdir/$macname/$type/latest gunzip $logdir/$macname/$type/$date.gz >/dev/null 2>&1 cat $indir/$ent >> $logdir/$macname/$type/$date gzip $logdir/$macname/$type/$date >/dev/null 2>&1 ;; "http") # Process http access/error logs logtype=`echo $ent|cut -d'.' -f2` macname=`echo $ent|cut -d'.' -f3` wwwname=`echo $ent|cut -d'.' -f4` date=`echo $ent|cut -d'.' -f5|cut -c1-6` if [ ! -d $logdir/$macname/http/$wwwname ] then mkdir -p $logdir/$macname/http/$wwwname fi if [ "$logtype" = "access" ] then collector.http.pl $ent >/dev/null 2>&1 else gunzip $logdir/$macname/http/$wwwname/error.$date.gz >/dev/null 2>&1 cat $indir/$ent >>$logdir/$macname/http/$wwwname/error.$date gzip $logdir/$macname/http/$wwwname/error.$date >/dev/null 2>&1 fi ;; *) # Everything else gunzip $logdir/$macname/$type/$date.gz >/dev/null 2>&1 cat $indir/$ent >> $logdir/$macname/$type/$date 2>/dev/null gzip $logdir/$macname/$type/$date >/dev/null 2>&1 ;; esac # Whatever happens, we assume the log is finished with rm -f $indir/$ent done fi