Customer search:
- copy this code to stat-customer.sh
- put stat-customer.sh to server
- run [ bash stat-customer.sh $'searchWord' $'date' $'pathToLogPackage' ]
- open stat-customer.csv
#!/bin/bash
#params = word*, date*, path*
#
WORD=$1; #search word: error
LIST=$2; #date: *, *2022*, *2022-02*
LOGPATH=$3; #/pathToLogPackage
HEADER="$LOGPATH;'searchWord-$WORD'";
cd $LOGPATH;
SAVE="stat-customer.csv";
echo $HEADER >> ~/$SAVE
for FILE in $LIST;
do
SUBSTR=$(echo $FILE | cut -d "." -f2);
echo -n $SUBSTR; echo -n ";";
zgrep -a -i "$WORD" $FILE | wc -l;
done >> ~/$SAVE
echo $SAVE
##
Stat search:
- copy this code to stat.sh
- change value for $WORD (if need)
- set pathToLogPackage for $PATHS & put stat.sh to server
- run [ bash stat.sh $'date' ] & open stat-*.csv
#!/bin/bash
#params = date*, word
#
LIST=$1; #date: *, *2022*, *2022-02*
WORD="unexpected api";
PATHS=(
/pathToLogPackage1
/pathToLogPackage...
/pathToLogPackageN
);
echo "CHECK PACKAGES = ${#PATHS[*]}";
i=1;
for item in ${PATHS[*]}
do
cd $item
SAVE="stat-$i.csv";
HEADER="$item;LINES;INFO;WARN;ERROR;$WORD;ERR-PERCENT;$WORD-PERCENT";
echo $HEADER >> ~/$SAVE
for FILE in $LIST;
do
SUBSTR=$(echo $FILE | cut -d "." -f2);
echo -n $SUBSTR; echo -n ";";
#filter file.gz
if [ "$(echo $FILE | grep -io 'gz')" = "gz" ];
then zcat $FILE | wc -l | tr -d "\n"; echo -n ";";
else cat $FILE | wc -l | tr -d "\n"; echo -n ";";
fi
#count stat
INF=$(zgrep -a -i INFO $FILE | wc -l);
echo $INF | tr -d "\n"; echo -n ";";
zgrep -a -i WARN $FILE | wc -l | tr -d "\n"; echo -n ";";
ERR=$(zgrep -a -i ERROR $FILE | wc -l);
echo $ERR | tr -d "\n"; echo -n ";";
UNEXP=$(zgrep -a -i "$WORD" $FILE | wc -l);
echo $UNEXP | tr -d "\n"; echo -n ";";
#count error percent
if [ $INF -ne 0 ];
then DIVERR=$(($ERR * 100 / $INF));
elif [ $ERR -eq 0 ];
then DIVERR=0;
else DIVERR=100;
fi
echo $DIVERR | tr -d "\n"; echo -n ";";
#count word percent
if [ $ERR -ne 0 ];
then DIVWORD=$(($UNEXP * 100 / $ERR));
elif [ $UNEXP -eq 0 ];
then DIVWORD=0;
else DIVWORD=100;
fi
echo $DIVWORD;
done >> ~/$SAVE
echo $SAVE
((i++));
done
##