Its a bash shell.
Any ways to make it work.
------ Post updated at 12:05 PM ------
Thanks for the prompt reply..
As stated the script is working fine if I do not give 3rd argument, this means the syntax which you are pointing is not correct, is not the case.
Here is the complete code:
#!/bin/bash
usage()
{
echo "Usage: ./$0 <metrics file name> <interval> <pattern>"
}
METRICS_FILE=$1
INTERVAL=$2
PATTERN="$3"
if [ "${METRICS_FILE}" == "" ] || [ "${INTERVAL}" == "" ]
then
echo "Input not sufficient"
usage
exit
fi
if [ "${PATTERN}" == "" ]
then
PATTERN="grep Gx"
fi
cat ${METRICS_FILE} |cut -d',' -f2,4|uniq > interval.txt
DUR=`expr ${INTERVAL} \* 60`
while read line
do
start_tim=`echo ${line} |cut -d',' -f1`
end_tim=`echo ${line} |cut -d',' -f2`
COUNT=$(cat ${METRICS_FILE} | ${PATTERN} |egrep "${start_tim}|${end_tim}" |awk -F"Count=" '{print $2}'|cut -d',' -f1 |perl -lne '$sum += $_ } { print $sum')
if [ "${COUNT}" == "" ]
then
continue;
fi
RATE=`awk "BEGIN {print ${COUNT}/${DUR}}"`
# echo "Interval: $line"
echo "COUNT: [${COUNT}] RATE: [${RATE}] [${start_tim}] [${end_tim}]"
echo
done < interval.txt
rm -rf interval.txt 2>/dev/null
Sample Input File: Paste the contents in m.csv.
Start Time In MS=1532947500004,Start Time Local=Mon Jul 30 12:45:00 CEST 2018,End Time In MS=1532948400003,End Time Local=Mon Jul 30 13:00:00 CEST 2018,Site=site1,Group=Diameter,Application=Gx,Command=RAR,Destination Host=pcrf1.vVOLTE5MIRM.site1,Destination Realm=EPC.MNC010.MCC222.3GPPNETWORK.ORG,Egress Peer Origin Host=csb.vVOLTE5MIRM.site1,Egress Peer Origin Realm=vVOLTE5MIRM.site1,Ingress Peer Origin Host=c11-10-214-191-34-dcc-prf-mas-44,Ingress Peer Origin Realm=vodafone.it,Origin Host=c11-10-214-191-34-dcc-prf-mas-44,Origin Realm=vodafone.it,Outbound Message Processing=No Value,Result=DIAMETER_SUCCESS,Role=Routing Agent,Average Latency=6.621212121212121
Start Time In MS=1532947500004,Start Time Local=Mon Jul 30 12:45:00 CEST 2018,End Time In MS=1532948400003,End Time Local=Mon Jul 30 13:00:00 CEST 2018,Site=site1,Group=Diameter,Application=Gx,Command=CCR,Destination Host=pcrf1.vVOLTE5MIRM.site1,Destination Realm=EPC.MNC010.MCC222.3GPPNETWORK.ORG,Egress Peer Origin Host=csb.vVOLTE5MIRM.site1,Egress Peer Origin Realm=vVOLTE5MIRM.site1,Ingress Peer Origin Host=c11-10-214-191-34-dcc-prf-mas-44,Ingress Peer Origin Realm=vodafone.it,Origin Host=c11-10-214-191-34-dcc-prf-mas-44,Origin Realm=vodafone.it,Outbound Message Processing=No Value,Result=DIAMETER_SUCCESS,Role=Routing Agent,Average Latency=6.621212121212121
And run it as:
./r.sh m.csv 15
COUNT: [0] RATE: [0] [Start Time Local=Mon Jul 30 12:45:00 CEST 2018] [End Time Local=Mon Jul 30 13:00:00 CEST 2018]
To generate error:
[root@dsc02-1 vf]# ./r.sh m.csv 15 "grep Gx|grep -v RAR"
grep: RAR: No such file or directory