LogStat

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
##