#!/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}" | 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} | 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