summaryrefslogtreecommitdiff
path: root/stats/calc.sh
blob: 4fe921c1690f810b6e8fbd35d8132aeaf55fe7a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env bash

LOGFILE=$1
OUTFILE=$2

if [ $# -lt 2 ]; then
  echo "Usage:
    ./calc.sh logs/access.log gemini/stats.gmi
  "
fi

# Stats for today
TODAY=$(date -Id)
echo -e "Stats for day:\t$TODAY" > $OUTFILE
echo -e "   Total Reqs:\t"$(grep 'OUT' ${LOGFILE} | grep "${TODAY}" | wc -l) >> $OUTFILE
echo -e " Gemlog Reads:\t"$(grep 'IN' ${LOGFILE} | grep "${TODAY}" | grep "gemlog" | grep "gmi" | wc -l) >> $OUTFILE
echo "Top 5 Gemlogs" >> $OUTFILE
echo "--------------" >> $OUTFILE
grep "IN" ${LOGFILE} | grep "${TODAY}" | grep -v '172.105.81.166' | cut -f4 | grep "gemlog" | grep ".gmi" | sort | uniq -c | sort -rn | head -n5 >> $OUTFILE

# Stats total
EARLIEST=$(head -n1 $LOGFILE | cut -f1)
echo "" >> $OUTFILE
echo -e "  Stats since:\t$EARLIEST" >> $OUTFILE
echo -e "   Total Reqs:\t"$(grep 'OUT' ${LOGFILE} | wc -l) >> $OUTFILE
echo -e " Gemlog Reads:\t"$(grep 'IN' ${LOGFILE} | grep "gemlog" | grep "gmi" | wc -l) >> $OUTFILE
echo "Top 5 Gemlogs" >> $OUTFILE
echo "--------------" >> $OUTFILE
grep "IN" ${LOGFILE} | grep -v '172.105.81.166' | cut -f4 | grep "gemlog" | grep ".gmi" | sort | uniq -c | sort -rn | head -n5 >> $OUTFILE

# print generating timestamp
echo -e "\n// generated $(date -u -Is)" >> $OUTFILE