#!/bin/bash echo -n > /usr/local/apache/htdocs/cph.txt; # Define el número de días a revisar (7 días: hoy y los 6 anteriores) NUM_DIAS=6 # Obtiene la fecha actual. Usa 'gdate' si estás en macOS con Homebrew. # En Linux, se usa 'date'. HOY=$(date +%Y-%m-%d) echo "--- Buscando entradas de cPHulk bloqueadas desde $HOY hasta hace $NUM_DIAS días ---" # Bucle que va desde 0 (hoy) hasta NUM_DIAS (6 días atrás) for i in $(seq 0 $NUM_DIAS); do # Calcula la fecha restando $i días # Usa 'gdate' en macOS o 'date' en Linux FECHA=$(date -d "$i days ago" +%Y-%m-%d) echo "Procesando fecha: $FECHA" # 1. Utiliza 'grep' para filtrar por la fecha generada # 2. El resto del comando 'awk' se mantiene grep "$FECHA" /usr/local/cpanel/logs/cphulkd.log | \ grep blocked | \ grep -vE 'dovecot|webmail' | \ awk -F'[][]' '{ ip = "" fecha = "" # Tu lógica de AWK para extraer IP y fecha for(j=1; j<=NF; j++) { if ($j == "Remote IP Address") { ip = $(j+2) } # La expresión regular busca el formato YYYY-MM-DD HH:MM:SS +0000 if ($j ~ /^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} [-+][0-9]{4}$/) { fecha = substr($j, 1, 10) } } if (ip != "" && fecha != "") { print ip, fecha } }' >> /usr/local/apache/htdocs/cph.txt; done