#!/bin/bash # # Script para Geracao de Relatorio do SARG # Adaptado para utilizar logs de rotate e compactados # # Idealizado por Fernando Val # # Histórico: # # versão data nome comentários # 1.0.0.0 2004-11-16 Fernando Val (none) # LOGDIR="/var/log/squid" function catlogs() { find $LOGDIR -maxdepth 1 -name "access.log*" -mtime -$DAYS | xargs ls -tr /dev/null | while read LOGFILE ; do [ -r "$LOGFILE" ] && case "$LOGFILE" in *.gz) zcat "$LOGFILE" ;; *.bz2) bzcat "$LOGFILE" ;; *) cat "$LOGFILE" ;; esac done } function geralog() { # doreport DESTINATION FROMTIME-WHEN DAYS="$1" FROMTIME="$2" TOTIME="$3" STARTTIME=`date +%s -d "$FROMTIME"` ENDTIME=`date +%s -d "$TOTIME"` echo "Generating report from" \ "`date +%Y%m%d -d "$FROMTIME"`" "to" \ "`date +%Y%m%d -d "$TOTIME"`" # Unzip files before use ... # find $LOGDIR -maxdepth 1 -name "access.log-*.gz" -mtime -$DAYS -exec gunzip {} \; catlogs > /tmp/squid.log } geralog 8 "1 week ago 00:00" "00:00" exec /usr/bin/sarg \ -l /tmp/squid.log \ -o /var/www/sarg/weekly \ -d "$(date --date "1 week ago" +%d/%m/%Y)-$(date --date "1 day ago" +%d/%m/%Y)" rm -f /tmp/squid.log