From cbda399176c6836f320e3ceb8a8c58ea52be7e3b Mon Sep 17 00:00:00 2001 From: MrFry Date: Fri, 10 Apr 2020 15:25:11 +0200 Subject: [PATCH] Added server statistic script --- serverStats.sh | 124 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100755 serverStats.sh diff --git a/serverStats.sh b/serverStats.sh new file mode 100755 index 0000000..c24dee0 --- /dev/null +++ b/serverStats.sh @@ -0,0 +1,124 @@ +#!/bin/bash + +if [ "$#" -ne "1" ]; then + echo not enough params! please specify server root directory! + exit 1 +fi + +export TERM=xterm-256color + +# COLORS +NC='' +# GRAY='' +R='' +G='' +# YELLOW='' +B='' +P='' +C='' +sep="${P}--------------------------------------------------------------------------------<=$NC" + +pcolumns () { + mlength=35 + NUM=0; + l=$(echo $"$1" | wc -l) + sizeof2=$(echo $"$2" | wc -l) + if [ "$l" -lt "$sizeof2" ]; then + l=$(echo $"$2" | wc -l) + fi + for i in $( eval echo {0..$l} ) + do + line=$(echo -ne $"$1" | cut -d$'\n' -f $(($NUM+1))) + sliced="${line:0:$mlength}" + last="${line: -3}" + size=${#sliced} + diff=$(($mlength-$size)) + + if [ "$sliced" == "null" ]; then + echo -n '' + else + echo -en "$sliced" + fi + if [ "$diff" -gt "0" ]; then + diff=$((diff+2)) + for j in $( eval echo {0..$diff} ) + do + echo -n " " + done + else + echo -en "$last" + fi + + sr=$(echo -ne $"$2" | cut -d$'\n' -f $(($NUM+1))) + r=$"${sr:0:$mlength}" + if [ "$r" == "null" ]; then + echo '' + else + echo "$r" + fi + + NUM=$((NUM+1)) + done +} + +function jsonStats () { + dateind=$(date '+%Y/%m/%d') + b=$(cat "$1" | jq ".[\"$dateind\"]" | grep -ve '^{' | grep -ve '}$' | grep -ve '^\s*}') + bc=$(cat "$1" | jq ".[\"$dateind\"] | length") + b="\t${bc}\n${b}" + + dateind=$(date -d 'yesterday' '+%Y/%m/%d') + a=$(cat "$1" | jq ".[\"$dateind\"]" | grep -ve '^{' | grep -ve '}$' | grep -ve '^\s*}') + ac=$(cat "$1" | jq ".[\"$dateind\"] | length") + a="\t${ac}\n${a}" + + pcolumns $"$a" $"$b" | sed -E \ + -e "s,/getVeteranPw,${C}&${NC},g" \ + -e "s,/getVeteranpw,${C}&${NC},g" \ + -e "s,/pwRequest,${C}&${NC},g" \ + -e "s,/login,${C}&${NC},g" \ + -e "s,/manual,${G}&${NC},g" \ + -e "s,/allQuestions,${G}&${NC},g" \ + -e "s,/subjectBrowser,${G}&${NC},g" \ + -e "s,/repos,${G}&${NC},g" \ + -e "s,/contribute,${G}&${NC},g" \ + -e "s,/reops,${G}&${NC},g" \ + -e "s,/feedback,${G}&${NC},g" \ + -e "s,/menuClick,${G}&${NC},g" \ + -e "s,/allqr,${G}&${NC},g" \ + -e "s,/legacy,${G}&${NC},g" \ + -e "s,/donate,${P}&${NC},g" \ + -e "s,/thanks,${P}&${NC},g" \ + -e "s,/tiszai,${P}&${NC},g" \ + -e "s,/install,${P}&${NC},g" \ + -e "s,/irc,${P}&${NC},g" \ + -e "s,/postfeedback,${P}&${NC},g" \ + -e "s,/servergit,${P}&${NC},g" \ + -e "s,/scriptgit,${P}&${NC},g" \ + -e "s,/classesgit,${P}&${NC},g" \ + -e "s,/lred,${R}&${NC},g" \ + -e "s,/isAdding,${B}&${NC},g" \ + -e "s,/ask,${B}&${NC},g" +} + +function jsonStatsLength () { + dateind=$(date '+%Y/%m/%d') + bc=$(cat "$1" | jq ".[\"$dateind\"] | length") + b="\t${bc}\n" + + dateind=$(date -d 'yesterday' '+%Y/%m/%d') + ac=$(cat "$1" | jq ".[\"$dateind\"] | length") + a="\t${ac}\n" + + pcolumns $"$a" $"$b" +} + +echo -e "${G}Site requests yesterday / today:$NC" +jsonStats "${1}/stats/vstats" + +echo -e "$sep" +echo -e "${G}UID test solving count yesterday / today:$NC" +jsonStatsLength "${1}/stats/idvstats" + + +echo -e "$sep"