mirror of
				https://gitlab.com/MrFry/mrfrys-node-server
				synced 2025-04-01 20:24:18 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			196 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						||
 | 
						||
if [ "$#" -ne "1" ]; then
 | 
						||
  echo not enough params! please specify server root directory!
 | 
						||
  exit 1
 | 
						||
fi
 | 
						||
 | 
						||
export TERM=xterm-256color
 | 
						||
 | 
						||
# COLORS
 | 
						||
NC='[0m'
 | 
						||
# GRAY='[90m'
 | 
						||
R='[91m'
 | 
						||
G='[32m'
 | 
						||
# YELLOW='[33m'
 | 
						||
B='[94m'
 | 
						||
P='[95m'
 | 
						||
C='[36m'
 | 
						||
sep="${P}----------------------------------------------------------------------------------------------------------------------------<=$NC"
 | 
						||
 | 
						||
pcolumns() {
 | 
						||
  mlength=35
 | 
						||
  NUM=0
 | 
						||
  l=$(echo $"$1" | wc -l)
 | 
						||
  sizeof2=$(echo $"$2" | wc -l)
 | 
						||
  sizeof3=$(echo $"$3" | wc -l)
 | 
						||
 | 
						||
  if [ "$l" -lt "$sizeof2" ]; then
 | 
						||
    l=$(echo $"$2" | wc -l)
 | 
						||
  fi
 | 
						||
  if [ "$l" -lt "$sizeof3" ]; then
 | 
						||
    l=$(echo $"$3" | 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 -en "\t"
 | 
						||
    else
 | 
						||
      echo -en "\t$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}"
 | 
						||
    last="${r: -3}"
 | 
						||
    size=${#r}
 | 
						||
    diff=$(($mlength - $size))
 | 
						||
    if [ "$r" == "null" ]; then
 | 
						||
      echo -ne ''
 | 
						||
    else
 | 
						||
      echo -ne "$r"
 | 
						||
    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
 | 
						||
 | 
						||
    tr=$(echo -ne $"$3" | cut -d$'\n' -f $(($NUM + 1)))
 | 
						||
    r=$"${tr:0:$mlength}"
 | 
						||
 | 
						||
    if [ "$r" == "null" ]; then
 | 
						||
      echo ''
 | 
						||
    else
 | 
						||
      echo "$r"
 | 
						||
    fi
 | 
						||
 | 
						||
    NUM=$((NUM + 1))
 | 
						||
  done
 | 
						||
}
 | 
						||
 | 
						||
function jsonStats() {
 | 
						||
  dateind=$(date '+%Y-%m-%d')
 | 
						||
  a=$(cat "$1" | jq ".[\"$dateind\"]" | grep -ve '^{' | grep -ve '}$' | grep -ve '^\s*}' | sort)
 | 
						||
  ac=$(cat "$1" | jq ".[\"$dateind\"] | length")
 | 
						||
  a="\t${ac}\n${a}"
 | 
						||
 | 
						||
  dateind=$(date -d '-1 day' '+%Y-%m-%d')
 | 
						||
  b=$(cat "$1" | jq ".[\"$dateind\"]" | grep -ve '^{' | grep -ve '}$' | grep -ve '^\s*}' | sort)
 | 
						||
  bc=$(cat "$1" | jq ".[\"$dateind\"] | length")
 | 
						||
  b="\t${bc}\n${b}"
 | 
						||
 | 
						||
  dateind=$(date -d '-2 day' '+%Y-%m-%d')
 | 
						||
  c=$(cat "$1" | jq ".[\"$dateind\"]" | grep -ve '^{' | grep -ve '}$' | grep -ve '^\s*}' | sort)
 | 
						||
  cc=$(cat "$1" | jq ".[\"$dateind\"] | length")
 | 
						||
  c="\t${cc}\n${c}"
 | 
						||
 | 
						||
  pcolumns $"$c" $"$b" $"$a" | sed -E \
 | 
						||
    -e "s,/getVeteranPw,${C}&${NC},g" \
 | 
						||
    -e "s,/getveteranpw,${C}&${NC},g" \
 | 
						||
    -e "s,/pwRequest,${C}&${NC},g" \
 | 
						||
    -e "s,/getpw,${C}&${NC},g" \
 | 
						||
    -e "s,/avaiblePWS,${C}&${NC},g" \
 | 
						||
    -e "s,/pwRequest,${C}&${NC},g" \
 | 
						||
    -e "s,/login,${C}&${NC},g" \
 | 
						||
    -e "s,/logout,${C}&${NC},g" \
 | 
						||
    -e "s,/manual,${G}&${NC},g" \
 | 
						||
    -e "s,/todos,${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,/addQuestion,${G}&${NC},g" \
 | 
						||
    -e "s,/dataCount,${G}&${NC},g" \
 | 
						||
    -e "s,/menuClick,${G}&${NC},g" \
 | 
						||
    -e "s,/ranklist,${G}&${NC},g" \
 | 
						||
    -e "s,/uploaddata,${G}&${NC},g" \
 | 
						||
    -e "s,/legacy,${G}&${NC},g" \
 | 
						||
    -e "s,/donate,${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,/voteTodo,${P}&${NC},g" \
 | 
						||
    -e "s,/registerscript,${P}&${NC},g" \
 | 
						||
    -e "s,/quickvote,${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,/thanks,${R}&${NC},g" \
 | 
						||
    -e "s,/isAdding,${B}&${NC},g" \
 | 
						||
    -e "s,/allqr,${B}&${NC},g" \
 | 
						||
    -e "s,/ask,${B}&${NC},g"
 | 
						||
}
 | 
						||
 | 
						||
function jsonStatsLength() {
 | 
						||
  dateind=$(date '+%Y-%m-%d')
 | 
						||
  ac=$(cat "$1" | jq ".[\"$dateind\"] | length")
 | 
						||
  a="\t${ac}\n"
 | 
						||
 | 
						||
  dateind=$(date -d '-1 day' '+%Y-%m-%d')
 | 
						||
  bc=$(cat "$1" | jq ".[\"$dateind\"] | length")
 | 
						||
  b="\t${bc}\n"
 | 
						||
 | 
						||
  dateind=$(date -d '-2 day' '+%Y-%m-%d')
 | 
						||
  cc=$(cat "$1" | jq ".[\"$dateind\"] | length")
 | 
						||
  c="\t${cc}\n"
 | 
						||
 | 
						||
  pcolumns $"$c" $"$b" $"$a"
 | 
						||
}
 | 
						||
 | 
						||
echo -e "${G}Site requests before / yesterday / today:$NC"
 | 
						||
jsonStats "${1}/stats/vstats"
 | 
						||
 | 
						||
echo -e "$sep"
 | 
						||
echo -e "${G}User ID test solving count before / yesterday / today:$NC"
 | 
						||
jsonStatsLength "${1}/stats/idvstats"
 | 
						||
 | 
						||
echo -e "$sep"
 | 
						||
echo -e "${G}User ID requests before / yesterday / today:$NC"
 | 
						||
jsonStatsLength "${1}/stats/uvstats"
 | 
						||
 | 
						||
echo -e "$sep"
 | 
						||
echo -e "${G}User/data count day before / day before / yesterday + new ones yesterday:$NC"
 | 
						||
s=$(cat "${1}/stats/dailyDataCount" | tail -n 1 | jq '.subjectCount')
 | 
						||
q=$(cat "${1}/stats/dailyDataCount" | tail -n 1 | jq '.questionCount')
 | 
						||
u=$(cat "${1}/stats/dailyDataCount" | tail -n 1 | jq '.userCount')
 | 
						||
 | 
						||
st=$(cat "${1}/stats/dailyDataCount" | tail -n 2 | head -n 1 | jq '.subjectCount')
 | 
						||
qt=$(cat "${1}/stats/dailyDataCount" | tail -n 2 | head -n 1 | jq '.questionCount')
 | 
						||
ut=$(cat "${1}/stats/dailyDataCount" | tail -n 2 | head -n 1 | jq '.userCount')
 | 
						||
 | 
						||
sy=$(cat "${1}/stats/dailyDataCount" | tail -n 3 | head -n 1 | jq '.subjectCount')
 | 
						||
qy=$(cat "${1}/stats/dailyDataCount" | tail -n 3 | head -n 1 | jq '.questionCount')
 | 
						||
uy=$(cat "${1}/stats/dailyDataCount" | tail -n 3 | head -n 1 | jq '.userCount')
 | 
						||
 | 
						||
sd=$((s - st))
 | 
						||
qd=$((q - qt))
 | 
						||
ud=$((u - ut))
 | 
						||
 | 
						||
echo -e "Users:\t\t${G}${uy}${NC}\t\t\t\t\t${G}${ut}${NC}\t\t\t\t\t${G}${u}${NC}\t+${B}${ud}${NC}"
 | 
						||
echo -e "Subjects:\t${G}${sy}${NC}\t\t\t\t\t${G}${st}${NC}\t\t\t\t\t${G}${s}${NC}\t+${B}${sd}${NC}"
 | 
						||
echo -e "Questions:\t${G}${qy}${NC}\t\t\t\t\t${G}${qt}${NC}\t\t\t\t\t${G}${q}${NC}\t+${B}${qd}${NC}"
 | 
						||
 | 
						||
echo -e "$sep"
 |