Script para mostrar peticiones de logs de apache en rangos


Icono de bash script

Si es necesario ver en que rangos de horas han habido peticiones al minuto se puede usar este script. Solo funciona en el caso de ser logs de apache.

#!/bin/bash

#Usage
#bash namesript.sh "día" "mes" "año" "log.log"
#example
#bash conectionsDays.sh 2 Nov "access.log"

declare range
declare noRequest

for i in 0{0..9} {10..23}
do
    for j in 0{0..9} {10..59}
    do
        if [[ $(zgrep -c "$1/$2/$3:$i:$j:" $4 ) = 0 ]];then
            noRequest=true
        else
            noRequest=false
        fi

        if [ $noRequest = true ];then
            if [[ -z $range ]];then
                range="$1/$2 $i:$j"
            fi
        else
            if [[ ! -z $range ]];then
                echo $range"- $1/$2 $i:$j"
                range=""
            fi
        fi
    done
done

if [[ ! -z $range ]];then
    echo $range"- $1/$2 23:59"
fi