
#!/bin/sh
# File	: ana_web-logs.sh
# By	: MaartenDeBoer.nl, 210310
# Subject	: Script to Analyze the Web-logs
#(0.2),210311	: Added $1 as FILTER
#(0.3),210311	: Added date stamp
#(0.4),210315	: Added MAILTO, LOG, RCFILE
PGM=`basename $0|cut -d\. -f1`
VER="0.4"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/PGM.log"
LOGDIR="/var/log/apache2"
FILTER="[?]*"
RCFILE="${HOME}/etc/${PGM}.rc"
MAILTO="maarten@agrarix.it"

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
touch ${TMP}
if [ -f ${RCFILE} ]; then
  echo "  RCFILE (${RCFILE}) found. Using it ..."|tee -a ${LOG} ${TMP}
  . ${RCFILE}
fi
if [ "${1}" != "" ]; then
  FILTER="${1}"
fi
echo "FILTER=${FILTER}" | tee -a ${TMP}
echo "MAILTO=${MAILTO}" | tee -a ${TMP}
echo "" >> ${TMP}

sudo ls -1 ${LOGDIR}|grep -v .gz|grep -v .1|grep access|grep ${FILTER}|while read LINE
do
  echo "  ${LINE}"
  sudo cat ${LOGDIR}/${LINE}|awk '{print $1}'|sort -u|while read ADDRESS
  do
    ADDRESSNAME=`nslookup ${ADDRESS}|grep name |cut -d\= -f2`
    DATI=`sudo grep "${ADDRESS}" ${LOGDIR}/${LINE}|tail -1|awk '{print $4}'`
    echo "    ${ADDRESS} = ${ADDRESSNAME} : ${DATI}" |tee -a ${TMP}

  done  # sudo cat ${LOGDIR}/${LINE}
done  # sudo ls -1 

if [ "${MAILTO}" != "" ] && [ -s ${TMP} ]; then
  echo "  Mailing to ${MAILTO}"|tee -a ${LOG}
  cat ${TMP} | mailx -s "${PGM} v${VER}: ${FILTER}" ${MAILTO}
fi

rm ${TMP}
echo "`date` ${PGM} v${VER} finished."|tee -a ${LOG}
exit 0

