LINUX – Script array asociativo para analizar LOG y contar direcciones IP.

Este scripts BASH lee un archivo de LOG y contabiliza las direcciones IP encontradas. Al final muestra un resumen con el total de apariciones de cada Dirección IP encontrada en el archivo de LOG :

Explicación del script:

  1. #!/bin/bash: Línea shebang que especifica que el script debe ejecutarse con bash.
  2. logfile="archivo.log": Variable que contiene el nombre del archivo de registro. Cambia «archivo.log» por el nombre de tu archivo.
  3. ip_counts=([ ]="0"): Inicializa un array asociativo llamado ip_counts. La clave es la dirección IP y el valor es el conteo (inicializado en 0).
  4. while IFS= read -r line: Bucle que lee el archivo de registro línea por línea.
  5. if [[ $line =~ ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) ]]: Expresión regular que busca direcciones IP en cada línea. Ajusta la expresión regular si tus direcciones IP tienen un formato diferente.
  6. ip=${BASH_REMATCH[1]}: Asigna la dirección IP encontrada a la variable ip.
  7. ip_counts[$ip]=$((ip_counts[$ip]+1)): Incrementa el conteo para la dirección IP en el array asociativo.
  8. for ip in "${!ip_counts[@]}": Bucle que itera sobre las claves del array asociativo (las direcciones IP).
  9. echo "$ip: ${ip_counts[$ip]}": Imprime la dirección IP y su conteo.
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *